gpt4 book ai didi

opencv - 如何合并 2 个具有最小距离的 CvRects,这是 cvContour 的结果

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:52 24 4
gpt4 key购买 nike

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

我的问题是,找到的 blob 中的一些 rects 重叠或者是更大 blob 的一部分。是否有快速解决方案来移除内部 Blob 并以最小距离合并 Blob ?

例如:

最佳答案

您可以使用 operator& of cv::Rect 检查矩形是否重叠:

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

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

关于opencv - 如何合并 2 个具有最小距离的 CvRects,这是 cvContour 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com