Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 将曲线图案与图像的边缘匹配_Algorithm_Image Processing_Opencv_Pattern Matching_Computer Vision - Fatal编程技术网

Algorithm 将曲线图案与图像的边缘匹配

Algorithm 将曲线图案与图像的边缘匹配,algorithm,image-processing,opencv,pattern-matching,computer-vision,Algorithm,Image Processing,Opencv,Pattern Matching,Computer Vision,我有一个目标图像要搜索沿其边缘的曲线和一个包含该曲线的模板图像。我需要实现的是在目标图像中找到模板图像中曲线的最佳匹配,并基于分数确定是否存在匹配。这还包括曲线的旋转和调整大小。目标图像可以是Canny边缘检测器的输出,如果这使事情变得更容易的话 我正在考虑使用OpenCV(通过使用Python或Processing/Java,或者如果那些对所需函数的访问权限有限,则通过使用C)使事情变得实用和高效,但是我无法确定我是否可以在OpenCV中使用任何可用于此项工作的函数(或它们的组合)。我一直在阅

我有一个目标图像要搜索沿其边缘的曲线和一个包含该曲线的模板图像。我需要实现的是在目标图像中找到模板图像中曲线的最佳匹配,并基于分数确定是否存在匹配。这还包括曲线的旋转和调整大小。目标图像可以是Canny边缘检测器的输出,如果这使事情变得更容易的话

我正在考虑使用OpenCV(通过使用Python或Processing/Java,或者如果那些对所需函数的访问权限有限,则通过使用C)使事情变得实用和高效,但是我无法确定我是否可以在OpenCV中使用任何可用于此项工作的函数(或它们的组合)。我一直在阅读OpenCV文档,起初认为等高线可以完成这项工作,但是所有示例都显示了闭合形状,而我的情况是需要将开放曲线与边的一部分匹配

那么,有没有一种方法可以通过使用OpenCV或使用您建议的任何已知代码或算法来实现这一点

以下是一些图片来说明问题:

我的第一个想法是。然而,我不知道有什么好的实现

我会先在canny edge图像上进行筛选或冲浪。它通常用于查找2d区域,而不是1d轮廓,但是如果您在轮廓周围使用最小边界框并将其用作搜索模式,它应该可以工作

OpenCV有一个实现:

一个问题可能是得到一个好的边缘图像,那些黑色的形状在后面可能会分散注意力

另请参见下面的答案:

谢谢,我会试试这些,然后回来告诉大家我的结果或发现。阿里,运气好吗?另请看这个问题,它引用了您的问题:谢谢Rehunk,到目前为止还没有看到您的评论;长时间。。。我没有真正的解决办法,但有一个局部的解决办法,那时候做的工作越来越少;慢速旋转和w/o旋转:我使用简单的相关匹配,将模板调整为不同的大小,但不是直接与图像上的曲线匹配,而是在颜色编码的边缘图像上,其中每个边缘点的斜率都有相应的颜色,同样,模板曲线也基于每个点上曲线的斜率进行颜色编码。然后我通过相关性比较了这些颜色,结果对于有限的/实际的解决方案来说是可以的。。。