【问题标题】:OpenCV - approxPolyDP not finding rectangleOpenCV - approxPolyDP 没有找到矩形
【发布时间】:2019-01-18 23:15:26
【问题描述】:

在网络摄像头提要上使用 opencv 的 approxPolyDP 函数来检测矩形时,我有时会遇到错误。

附上两张图片,在这两张图片中都可以看到矩形,但是 approxPolyDP 函数有时只能找到一个矩形,有时它只能找到两个对角之间的直线。

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

生成多边形的代码:

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

【问题讨论】:

    标签: c++ opencv polygon


    【解决方案1】:

    如果 drawContours 的输出包含许多段(超过两个,我的意思是,一个正确的输出),我会尝试减少 approxPolyDP 中的 epsilon,以使 Douglas-Peucker 算法丢弃更少的段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 2021-09-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2013-09-17
      相关资源
      最近更新 更多