在网络摄像头源上使用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
答案 0 :(得分:0)
如果drawContours的输出包含许多段(我的意思是说,两个以上是正确的输出),我将尝试在roxPolyDP中减少epsilon,以使Douglas-Peucker算法丢弃更少的段。