比较opencv中的两个二进制图像



我有两个手的二进制图像,它们几乎相同。我应该如何比较它们才能知道它们是否代表几乎相同的形状。我试着找到两张图像之间的欧氏距离,但如果图像稍微改变或向左或向右移动,或者尺寸稍微减小,就不能给出正确的答案。我也在opencv中尝试过HOG描述符,但如果我比较多个图像,我仍然无法得到正确的答案。在不考虑图像大小的情况下,根据形状或任何特征比较两个二进制图像以了解几乎匹配的图像的最佳方法是什么。图像链接http://postimg.org/image/w20tuuzmv/和http://postimg.org/image/jndr4br9x/

我认为广义霍夫变换可能是一个很好的解决方案。这是一个关于它的教程。

或者,uou可以尝试从一张图像中剪切手(只需使用轮廓边界矩形),然后将其用作模板,并使用模板匹配技术在第二张图像中搜索它-在这里你可以阅读更多信息。当你们找到相关值最高的点时,你们需要决定它是否足够大——你们需要自己找到阈值。

图像是否只是旋转、平移和缩放?如果是这样,你可以使用PCA计算图像的主要分量,然后旋转图像,使第一个分量在某个方向上(例如,始终垂直),然后你可以计算图像的质心,并将它们平移到始终相同的位置(例如,图像的中心),要始终使用相同的比例,可以调整图像的大小,使两个图像中每个白色像素与质心之间的距离之和相同。现在很容易比较图像,例如score = np.sum(A==B)

相关内容

  • 没有找到相关文章

最新更新