如何区分蓝色(圆形)和其他(任意方向 rectangular/polygon)类型的轮廓

how to differentiate between blue (circular like) and other (arbitrary oriented rectangular/polygon) type contours

在this image 中有三个等高线。我想过滤掉蓝色的轮廓,它看起来像一个圆润的椭圆形,而其他的看起来像任意排列的多边形,它的边缘也可以不完全平滑。我们如何区分蓝色(圆形)和其他(任意方向 rectangular/polygon)类型的轮廓?如何在 OpenCV 或 Halcon 中为此设计特征?

在 Halcon 中,您可以使用特征来区分 regions/xld 的不同形状。检查区域/功能的帮助。 HDevelop 中甚至有一个 'Feature Histogram' 工具可以帮助您解决这个问题并探索所有不同的功能,检查 menu/Visualisation/Tools/Feature 直方图。

在代码中: read_image(Image, 'M0tcu.jpg') decompose3(Image, Image1, Image2, Image3) rgb3_to_gray(Image1, Image2, Image3, ImageGray) threshold (ImageGray, Regions, 131, 255) connection(Regions, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'circularity', 'and', 0.4615, 1)