OpenCV - 在阈值处理后获得椭圆形的平滑部分

问题描述 投票:0回答:1

我正在对图像进行阈值处理,我实现了这个结果:image after thresholding

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

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

opencv image-processing opencv-contour image-thresholding
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()这样的陈述。希望它能让您了解如何继续。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.