0

我正在对图像进行阈值处理,我得到了这个结果:阈值后的图像

现在我只想实现最大椭圆形的轮廓: 椭圆形

使用 OpenCV 实现它的最佳方法是什么?我知道这个形状有一些分支。有没有可能摆脱它们?

4

1 回答 1

0

我建议您反转阈值图像,使轮廓为白色,背景为黑色(cv2.threshold(cv2.THRESH_BINARY_INV))。然后用 搜索轮廓cv2.findContours()。要选择您想要的轮廓,您可以制作一些过滤器以从您希望找到的轮廓中消除其他轮廓。您可以在 For 循环 ( for i in contours:) 中使用过滤器,并为过滤器使用一些条件语句。对于过滤器,您可以尝试轮廓的大小 ( size = cv2.contourArea(i)) 或高度和宽度 ( x, y, w, h = cv2.boundingRect(i))。然后你可以做出这样的陈述if size > 100 and h > 100 and w < 50: cv2.drawContours()。希望它能给你一个关于如何进行的想法。干杯!

于 2018-09-16T19:53:53.127 回答