Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Opencv 如何比较两个相互转换的轮廓';什么位置?_Opencv_Image Processing - Fatal编程技术网

Opencv 如何比较两个相互转换的轮廓';什么位置?

Opencv 如何比较两个相互转换的轮廓';什么位置?,opencv,image-processing,Opencv,Image Processing,图片: 大家好, 我想比较两个等高线&找出它们之间的hausdorff距离,以找出两个等高线之间的相似性。当我将右侧的模板轮廓作为参考模板轮廓,从左侧查找相似轮廓时,我得到了错误,因为场景轮廓点是从模板轮廓点转换而来的。实际上,我是直接从这两幅图像中提取轮廓点。如您所见,我不能只裁剪轮廓区域,因为它会影响相邻的轮廓 我是否应该使用场景图像大小制作空图像,并使模板轮廓在场景图像上滑动以查找匹配?或者还有其他更好的方法吗? 当做 Balaji.R您可以执行以下操作: 检测原始图像中的轮廓 获取每个轮

图片: 大家好,
我想比较两个等高线&找出它们之间的hausdorff距离,以找出两个等高线之间的相似性。当我将右侧的模板轮廓作为参考模板轮廓,从左侧查找相似轮廓时,我得到了错误,因为场景轮廓点是从模板轮廓点转换而来的。实际上,我是直接从这两幅图像中提取轮廓点。如您所见,我不能只裁剪轮廓区域,因为它会影响相邻的轮廓

我是否应该使用场景图像大小制作空图像,并使模板轮廓在场景图像上滑动以查找匹配?或者还有其他更好的方法吗? 当做
Balaji.R

您可以执行以下操作:

  • 检测原始图像中的轮廓
  • 获取每个轮廓的轮廓序列/点。例如,假设第一个起点存储为轮廓-1中的点-1、点-2、点-3等(只是一个粗略的示例)
  • 然后找到每个轮廓的最小和最大x和y坐标
  • 对于每个轮廓
    宽度=最大x-最小x
    高度=最大y-最小y
  • 然后通过以下方式为每个轮廓创建单独的图像:

    RegionFinTerest=Rect(最小x,最小y,宽度,高度) templateImage=原始图像(RegionFinTerest)

  • 现在,执行matchTemplate();在每个单独的模板图像(从每个轮廓创建)和原始图像之间,然后可以找到最大协调的位置

  • 如果您认为模板图像的比例也可能不同,那么您可以对模板图像执行
    pryUp()
    pryDown()