【发布时间】:2014-11-19 17:08:37
【问题描述】:
这里的第一个问题很抱歉,如果我问的任何问题完全是愚蠢的。
我正在从事一个形状识别项目,我应该开发一个接收两个图像的应用程序:一个原始图像和一个用户制作的草图。我应该检测两个图像的轮廓,并在原始图像中找到与用户绘制的草图相对应的最佳匹配。
我已经在学习有关 Canny 边缘检测的一些基础知识,并且能够获得多张图像的轮廓。得到轮廓后,我需要分析图像中的所有轮廓并找到最佳匹配,忽略平移、旋转、缩放和遮挡。
然后,我发现这段代码完全符合我的要求: http://www.morethantechnical.com/2012/12/27/2d-curve-matching-in-opencv-w-code/ 但在 C++ 中。
您知道 Java 中类似代码的替代方法或任何可能对我有用的算法吗?我也发现了 BoofCV,但似乎没有实现这样的任务。
感谢您的耐心等待。
编辑:
我一直在寻找其他方法,我找到了 Hausdorff 距离: http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/98/normand/main.html
是否可以将此算法修改为旋转不变?他们只谈论平移和缩放。
【问题讨论】:
-
感谢您的建议 :) 我尝试使用 OpenCV 中的 findContours 和 matchShapes,但结果并不好。胡矩说,一个小矩形与平面的轮廓最相似……
标签: java opencv matching curve