How can I find all circles in this pictures?

Hi everyone

for a glass fiber project I need to find every of these fibers. The first picture is a good fibre, the second is not so good :smiley:

actually I inverted the complete picture and did a Blob detection. My parameters are:

Cv2.BitwiseNot(picture, picture);
 var detectorParams = new SimpleBlobDetector.Params
            {
                MinThreshold = 0,
                MaxThreshold = 220,
                FilterByArea = true,
                MinArea = 100,
                MaxArea = 300
            };
var simpleBlobDetector = SimpleBlobDetector.Create(detectorParams);
var keyPoints = simpleBlobDetector.Detect(picture);

I just can find the fibres that are very bright. unfortunately not the grey ones and also not the uncomplete ones. How can I find the rest of the fibres? I thought the Max Threshold of 220 should find the most of the Blobs.

Thanks for helping

Best Regards
Manu

just remember, that it is using findContours(),
which goes for white things on black bg

besides that, what’s the technical reason, some fibers are dark ?
would better lighting help ?

With findContours I just get no results. Just a Line on the outside of the picture. Also I don’t see any parameters to change in findContours. With the Blob detection at least I get some results :smiley:

At the moment the lighting isn’t that good because the other end of the fiber is open and not exactly cut off. In the end use it will be better. But we need to find single fibers like that. For this reason I would like to detect such fibers also. The “good” ones don’t seem to be a problem.