gpt4 book ai didi

python - 使用 OpenCV (Python) 查找具有最大封闭面积的轮廓

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:09 25 4
gpt4 key购买 nike

我有一张图片 Original Image ,我想找到包围图像中框的轮廓。这样做的原因是,我想将图像裁剪到边界框,然后对裁剪后的图像执行进一步的图像处理。

我已经尝试检测 Canny 边缘,但它们似乎没有像我希望的那样连接。附件是精巧边缘的外观图像。 Canny edges

    gray = img[:,:,1]
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edged = cv2.Canny(blurred, 20, 60)

从原始图像中找到边界框的最佳方法是什么?

非常感谢。

如果可能的话,让我知道如何使这个问题更清楚!

最佳答案

我假设如下:(如果不是这种情况,你应该在你的问题中指定这些事情)你知道盒子的大小尺寸总是一样的视角总是一样的盒子总是完全在视野内盒子没有旋转

在图像上使用几条扫描线来找到从黑色背景到框的过渡(在 x 和 y 中)超出阈值、最大梯度或任何最适合您的值。

丢弃异常值,使用最小和最大坐标将固定大小的 ROI 定位在您的框上。

还有许多其他方法可以找到固定 ROI 的中心位置,例如

阈值、距离变换、最大值

阈值、 Blob 搜索、质心/轮廓

你也可以做一些轮廓匹配。

我建议您改进设置,使背景照明不超过框边界(左/右优于上/下)。然后一切都变得简单。

顺便说一句,你的边缘图像看起来很糟糕。检查其他方法或改进您的 Canny 参数。

关于python - 使用 OpenCV (Python) 查找具有最大封闭面积的轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331040/

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