Skip to content Skip to sidebar Skip to footer

How To Remove A Contour Inside Contour In Python OpenCV?

OpenCV in Python provides the following code: regions, hierarchy = cv2.findContours(binary_image, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) for region in regions: x, y, w, h =

Solution 1:

For that, you should take a look at this tutorial on how to use the hierarchy object returned by the method findContours .

The main point is that you should use cv2.RETR_TREE instead of cv2.RETR_LIST to get parent/child relationships between your clusters:

regions, hierarchy = cv2.findContours(binary_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

Then you can check whether a contour with index i is inside another by checking if hierarchy[0,i,3] equals -1 or not. If it is different from -1, then your contour is inside another.


Solution 2:

img_output, contours, hierarchy = cv2.findContours(blank_image_firstImage, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

This removes the child contour


Post a Comment for "How To Remove A Contour Inside Contour In Python OpenCV?"