假设我有一个带有圆圈和正方形的图像。有没有办法找到给定图像矩阵的方块? (只有一个方格,时间不是真正的问题)。 感谢。
答案 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);
}
}
}
您可能希望使用具有最高宽度和高度值的框。
答案 1 :(得分:3)
让我们将所有点分为“点亮”和“黑暗”。
查找点亮的点,上方和下方的点也会点亮。这些可能是优势的一部分。
类似地:如果点(x,y)被点亮并且点(x + 1,y),(x + 2,y)也被点亮,但是(x-1,y)和(y-1, y)是黑暗的,类似地在Y方向上,那么你很可能找到左上角。等等。通过这种方式,您可以找到角落,然后从中找到方形 - 似乎是一种简单的方法。
答案 2 :(得分:0)
如果图像中的方块是完美的,请检查预期位置是否有边框。 thejh的答案中的伪代码应该可以正常工作。
答案 3 :(得分:0)
flood filling从随机点开始直到找到你的矩形怎么样?