使用OpenCV和Python检测图像上的不同类型的圆和椭圆

Leo*_*rin 5 python opencv image-processing feature-detection

我需要检测图像上的不同形状,如椭圆和带有虚线边框的圆圈.

使用OpenCV会导致一些麻烦,例如openCV检测不到轮廓而是检测到一些小的分离线(轮廓).如果椭圆带有"虚线边框",我需要将其作为单个轮廓,而不是分离的对象.

你有什么建议来解决这个问题?

我还需要识别带有实线边框的椭圆(或圆圈)和带有虚线边框的椭圆(圆圈)

椭圆形,边框实线

在此输入图像描述

带虚线边框的椭圆:

在此输入图像描述

Seb*_*zny 5

霍夫变换不应该有任何虚或实边界,或它们的组合任何麻烦.我用它来检测我的一个项目中的虚线,椭圆不应该更难.

默认情况下,OpenCV仅对直线实现Hough变换,但是有一个博客条目,其中包含如何使其适应椭圆形状的代码.