最适合矩形的算法

时间:2014-07-29 01:28:23

标签: algorithm image-processing geometry coordinates best-fit

我正在编写一个测量图片框的应用程序。操作后的样本图片如下所示:

rectangle

我的应用程序已识别出包含在框中的像素,并将颜色更改为红色。您可以看到图像非常嘈杂,因此在矩形上创建了非常粗糙的边缘。

我一直在阅读边缘/角落检测算法,但在我追求其中之一之前,我想退一步看看是否真的需要这么复杂的算法。考虑到我有一些简化事情的条件,似乎可能有一种更简单的方法可以解决这个问题:

  • 图片只包含一个矩形,而不是任何其他形状。
  • 每张图片只有1个矩形。
  • 我不需要确切,但我想尽可能地达到最佳状态。

我的第一个简单算法涉及找到最顶层,最底部,最左侧和最右侧的点。那些是四个角落。这工作正常,但对于像这样的嘈杂边缘来说并不是非常准确。作为角落,很容易将球视为更好的一点。

有人能指出我的算法吗?

1 个答案:

答案 0 :(得分:2)

您已经确定了您感兴趣的图像区域(红色区域)。

  • 使用相同的逻辑,您应该能够将图像二值化。比如说红色区域会产生白色像素,其余区域则是黑色。
  • 然后使用轮廓跟踪算法跟踪白色区域的外部轮廓。
  • 现在你有一个代表该区域外部轮廓的点集。
  • 找到限定此点集的最小面积矩形。

您可以使用OpenCV库轻松完成此操作。如果您打算使用OpenCV,请查看threshold,findContours和minAreaRect。希望这些信息有所帮助。