Haar级联:识别圆形和椭圆形

时间:2019-01-14 13:29:43

标签: python opencv matplotlib haar-classifier

我需要识别图像中是圆形还是椭圆形但方向不同的形状。

一些例子:

我正在使用Haar级联,但尝试了不同的级联,但是效果不佳。

我带来了一个带有背景的黑色椭圆形的简单图像,以此创建了我的正例,maxzangle不同于零以具有不同的方向(对吗?)

opencv_createsamples -img ovale.png -bg bg.txt -info info/info.lst -pngoutput info -maxxangle 0 -maxyangle 0 -maxzangle 1.3 -num 500 -bgcolor 255

opencv_traincascade -data dati -vec positives.vec -bg bg.txt -numPos 450 -numNeg 300 -numStages 5 -w 21 -h 7 -maxFalseAlarmRate 0.2

然后它停止,然后进入第三阶段,如果我尝试了,那是行不通的。

可以帮我吗?

2 个答案:

答案 0 :(得分:1)

Haar级联算法

  1. 主要用于检测任何形状的物体。
  2. 它通过标记对象的凹陷来绘制图形。
  3. 该算法需要学习更多类似数据才能获得最准确的值

例如:

  1. 如果算法需要准确地检测不同武器。
  2. 人脸检测,包括检测眼睛,嘴唇曲线。

条件:

然后需要使用更多数量的武器/人脸图像来学习算法,以便获得最准确的价值。

其他

如果通过很少的武器/人脸图像学习算法,则算法可能无法检测到对象是什么,或者它可能显示出与已学习算法的其他对象相似的值。

答案 1 :(得分:-1)

我不知道椭圆,但是OpenCV具有霍夫圆变换(Hough Circle Transform) https://docs.opencv.org/3.4/da/d53/tutorial_py_houghcircles.html用于检测圆,这在这种情况下可能有用。请记住,如果要使用它,则需要找到适合您情况的参数值。