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
Opencv 如何合并cvContour生成的2个距离最小的CVRect_Opencv_Merge_Contour - Fatal编程技术网

Opencv 如何合并cvContour生成的2个距离最小的CVRect

Opencv 如何合并cvContour生成的2个距离最小的CVRect,opencv,merge,contour,Opencv,Merge,Contour,在我的项目中,我使用cvFindContours来检测对象。 根据结果,我想标记输入图像的roi(如果检测到的斑点之间的距离很高,我想迭代roi的标记) 我的问题是,找到的blob中有几个矩形重叠,或者是更大blob的一部分。 有没有一个快速的解决方案来移除内部斑点并以最小的距离合并斑点 例如:您可以使用以下方法检查矩形是否重叠: 至于“最小距离”,使用标准opencv函数无法做到这一点。您必须确定矩形之间的“距离”:它们中心之间的距离(不推荐)?边界之间的距离?然后提醒你有两个维度。您可以这样

在我的项目中,我使用cvFindContours来检测对象。 根据结果,我想标记输入图像的roi(如果检测到的斑点之间的距离很高,我想迭代roi的标记)

我的问题是,找到的blob中有几个矩形重叠,或者是更大blob的一部分。 有没有一个快速的解决方案来移除内部斑点并以最小的距离合并斑点


例如:

您可以使用以下方法检查矩形是否重叠:


至于“最小距离”,使用标准opencv函数无法做到这一点。您必须确定矩形之间的“距离”:它们中心之间的距离(不推荐)?边界之间的距离?然后提醒你有两个维度。您可以这样做,但您必须自己编写。

非常感谢添加示例图像。您好,我在JavaCV中实现了这一点。谢谢
cv::Rect a(x1,y1,w1,h1);
cv::Rect b(x2,y2,w2,h2);
cv::Rect intersect = a&b; // if intersect is not empty, the rect overlaps