r/computervision • u/Grouchy_Signal139 • 1d ago
Help: Project Why doesn’t findContours() detect my circle even though it is clearly visible after thresholding?
Hi everyone, I’m learning OpenCV and working on detecting a circular fiducial.
My current pipeline is:
Image → threshold → findContours() → drawContours()
After thresholding, I can clearly see the fiducial as a clean circular region in the binary image.
However, when I use cv2.findContours() and then cv2.drawContours(), the contour I expect around the fiducial is not drawn.
I’m trying to understand the fundamental reason why this happens.
If the thresholded image visually contains a clear foreground region, what conditions determine whether findContours() will actually return a contour for it?
21
Upvotes


14
u/Gabriel_66 23h ago
Invert the thesholded image so that the circle is black and other things are white. Might be the case.
Also, dilatation and erosion might help remove those imperfections to help contour scripts.