在图像中找到方形的算法?

时间:2010-11-20 15:58:44

标签: algorithm

假设我有一个带有圆圈和正方形的图像。有没有办法找到给定图像矩阵的方块? (只有一个方格,时间不是真正的问题)。 感谢。

4 个答案:

答案 0 :(得分:3)

这样的东西?

for (x,y of every black pixel) {
 #those methods should return true if the lines length is more than one pixel
 if (hasLineToRight(x,y)&&hasLineToBottom(x,y)) {
  otherx=highestXOfLineToRight();
  othery=highestYOfLineToBottom();
  if (isLine(x,y,x,othery)&&isLine(x,y,otherx,y)) {
   addBoxToList(x,y,otherx,othery);
  }
 }
}

box image

您可能希望使用具有最高宽度和高度值的框。

答案 1 :(得分:3)

让我们将所有点分为“点亮”和“黑暗”。

查找点亮的点,上方和下方的点也会点亮。这些可能是优势的一部分。

类似地:如果点(x,y)被点亮并且点(x + 1,y),(x + 2,y)也被点亮,但是(x-1,y)和(y-1, y)是黑暗的,类似地在Y方向上,那么你很可能找到左上角。等等。通过这种方式,您可以找到角落,然后从中找到方形 - 似乎是一种简单的方法。

答案 2 :(得分:0)

如果图像中的方块是完美的,请检查预期位置是否有边框。 thejh的答案中的伪代码应该可以正常工作。

答案 3 :(得分:0)

flood filling从随机点开始直到找到你的矩形怎么样?