【问题标题】:OpenCV - Measuring distance between two edgesOpenCV - 测量两条边之间的距离
【发布时间】:2013-02-13 01:16:31
【问题描述】:

我想测量两条边之间的距离(以像素为单位)。 以下是我使用的图片和我使用的代码链接。

图片

在程序 1 中:Program1

我从 0 到 cols 扫描了图像 Mat 的特定行。即沿着一条扫描线。在这种情况下,我正确地获得了白色像素的位置,即边缘像素。

在程序 2 中:Program2

我从中间扫描图像Mat 的特定行,即我从行的中间到右方向直到cols,然后再从中间到行的第0列。在这种情况下,我在获取白色像素(即边缘像素)的位置时会得到错误的值。

您能否建议我代码中的问题或是否有更好的解决方案。

【问题讨论】:

    标签: opencv image-processing


    【解决方案1】:

    我没有查看您的代码。但是,如果您想测量两个不平行的边缘之间的距离,我建议对每行取它们之间的距离并取平均值。也许你得到的错误值是因为多重边缘。所以这是你可以做的,

    1. 从第 0 行第 0 列开始
    2. 获取白色像素,存储当前列。 (cur_loc = xxx)
    3. 找到下一个白色像素( new_loc = yyy ),测量差异,将其放入表格中。将此像素标记为起始像素 (cur_loc = new_loc) 并搜索下一个直到到达终点 列。
    4. 重置 cur_loc 和 new_loc 并重新开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      相关资源
      最近更新 更多