0

我正在使用 opencv 来检测形状,我必须检测这样的形状在此处输入图像描述

这将是一张手绘图片,我正在使用 kinect 通过检查帧来检测图片。现在,通过消除噪声、边缘检测、寻找轮廓和 approxDP,我为这类图片获得 6 分,现在我无法检测到形状是右脸、左脸、向下还是向上。随着每张图片的点位置发生变化。

所以我想知道给定两点,如何检查两点之间是否有线段。到达那里两个点后,我可以从剩余的点位置计算出形状指向的位置。

如果有人有更好的解决方案,请分享。

4

1 回答 1

0

假设您有两个端点,并且您的线段的像素值大于零(在上图中,您可能需要使用阈值二进制反转)。

  1. 通过绘制粗细 = 1 像素的线来创建蒙版图像。

  2. 使用上面的 Mask 将源图像复制到新 Mat。

  3. 现在计算结果 Mat 中的非零像素,

    • 如果为零,则点之间没有线,
    • 如果计数非零给出一个值,您可以通过与您在掩码中绘制的线的长度进行比较来交叉检查它。
于 2014-03-18T11:53:45.373 回答