OpenCV-大约多边形未找到矩形

时间:2019-01-18 23:15:27

标签: c++ opencv polygon

在网络摄像头源上使用opencv的roxorPolyDP函数检测矩形时,有时会遇到错误。

附有两个图像,在这两个图像中都可以看到矩形,但是roxPolyDP函数有时仅找到一个矩形,而有时仅找到两个对角线之间的直线。

我使用drawContours函数直接在彩色图像上绘制,但是在附加的灰度图像上使用了roxPolyDP。

生成多边形的代码:

for(int i = 0; i < contours.size();i++) {
    double epsilon = 0.06*arcLength(contours[i], true);
    approxPolyDP(contours[i], contours[i], epsilon, true);
}

有什么主意为什么要获得直线而不是矩形?如果需要更多代码,请询问。

The result of the function returning the line

Grayscale input of the function

Kind of correct result of the function

1 个答案:

答案 0 :(得分:0)

如果drawContours的输出包含许多段(我的意思是说,两个以上是正确的输出),我将尝试在roxPolyDP中减少epsilon,以使Douglas-Peucker算法丢弃更少的段。