如何在OpenCV中找到图像中的轮廓

How to find contours in an image in OpenCV?

本文关键字:图像 轮廓 OpenCV      更新时间:2023-10-16

我需要找到图像中的所有轮廓。我知道整个findcontours()和drawContours()的东西,但它使用的Canny边缘检测器,我有麻烦。要使用查找轮廓,您需要使用精明的边缘检测或阈值图像。我不能阈值图像,因为这会导致一些边缘被模糊("合并"的边缘)。所以我决定使用Canny边缘检测。然而,当我使用它而不是得到完美的边缘时,我得到了各种各样的有间隙的线条。例如,我得到的不是正方形的边缘,而是由小间隙分隔的4条线,这样我得到的是4条而不是1条轮廓。我尝试了放大、打开、关闭、高斯模糊和基本上所有的形态学算子,但这些都不起作用。有些不合并线条,而有些也将线条与不相关的线条合并。所以我想知道有没有人有一个解决方案,我如何从Canny边缘检测获得实际的轮廓,或者如果没有,有人有任何替代方案,从图像中获得所有的轮廓?

使blob,然后轮廓来与它。:)

http://code.google.com/p/cvblob/