opencv - 有没有办法在opencv中检测近矩形?

标签 opencv computer-vision

我要在各种形状中找出最相似的矩形。第一张图像是原始图像,其形状可能是矩形,但实际上不是。第二张图片中的绿色矩形是我想要的。那么有没有办法用opencv做到这一点?我已经尝试过 hough 线,但结果并不好

源图: enter image description here

而我想要的是在这些形状中找出最像的矩形,比如绿色的矩形。

我想要的: enter image description here

最佳答案

一个非常简单的方法是,在形状周围有一个矩形边界框之后,计算框内白色像素的百分比。

白色像素的百分比越高,它越接近矩形。

要获得边界框,您应该查看 opencv 中的 findContours 或一些 Blob 提取算法,您会发现很多与这些相关的问题。

编辑:

也许您应该先获取形状的最小边界矩形,然后进行这种启发式操作:

  • 缩小矩形尺寸,直到矩形内的白色像素百分比达到您定义的某个阈值(例如矩形内 90% 的白色像素)。

要获得最小边界矩形(包含整个形状的最小矩形),您可以查看本教程:

http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/bounding_rects_circles/bounding_rects_circles.html

可能也有帮助的一件事是计算最小边界矩形和最大内部矩形(白色形状内可以容纳的最大矩形)的大小差异。这些矩形的属性(宽度、高度、面积、中心坐标)之间的差异越小,形状越接近矩形。

关于opencv - 有没有办法在opencv中检测近矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776345/

相关文章:

opencv - Python 在 cv2.destroyWindow() 之后卡住

image-processing - 提取内部轮廓(HOLES)OpenCV

c++ - OPENCV可以使用视频捕捉设备访问模拟摄像机吗

opencv - 评估兴趣点检测器时要考虑的标准

opencv - 训练 DLib 行人 HoG 检测器导致检测器错误

opencv - 有没有办法检测中间的空心圆?

c++ - OpenCV:VideoCapture::get(CV_CAP_PROP_FPS) 返回 0 FPS

Python OpenCV 错误 : Current thread is not the object's thread

python - 你如何使用它在其他图像中的位置来三角测量图像中像素的位置?

python - 什么是适用于Python的好的计算机视觉库,能让我在Flash/HTML5视频中找到人脸?