2011-02-23 89 views
1

我有一个表示二进制图像的矩阵(每个单元格代表“黑色”像素为1,而“白色”像元为0)。黑色像素代表图像的形状(形状和填充),白色代表背景。我想要做的是检测矩阵中表示的数字的角落。二进制图像角点检测

2个例子:


enter image description here


任何想法或算法呢?

在此先感谢。

+0

你能举一个例子吗? –

+0

当然,像:[Squares](http://www.hjoseph.com/shared/squares.png)和[Caves](http://www.hjoseph.com/shared/cave.png) – Harph

+0

角落恰好是?边界框?还有别的吗? –

回答

5

试试opencv libraries,他们有python bindings和很多算法来做角点检测。

MY2C

+2

蟒蛇引用在这里http://opencv.willowgarage.com/documentation/python/index.html这是一个使用opencv的C++示例http://www.moosechips.com/2008/08/opencv-corner-detection-使用-cvgoodfeaturestotrack /和一个简短的howto使用哈里斯检测http://tech.groups.yahoo.com/group/OpenCV/message/42254 – macarthy

+0

@macarthy:不错的链接... – neuro

0

如果我理解正确你有一个使用的模板C++,可让您扫描每个像素,并且你能做到这一点,并与1的和白色0的更换黑色的。

当我使用opencv进行网络摄像头颜色检测时,我不得不做类似的事情。如果你喜欢,我可以告诉你我正在谈论的代码的一部分吗?虽然我可能会误解你的问题。然而我的代码允许你扫描每个像素(或者帧我的是从一个网络摄像头拍摄的,你也可以用一张实际的图片做同样的事情)

+0

我已经有矩阵与二进制表示图片。我需要的是知道哪些单元格是图像中表示的数字的角点。 IE:如果我有一个大小为20 x 20的图像,我得到一个20 x 20像元的矩阵......所以,假设图像的大小为5的正方形开始于单元格(3,2)。这意味着该数字的角是(3,2),(7,2),(3,6)和(7,6)。正如你所看到的,你只是匹配图像中表示的一个图形的角落。所以,我需要检测矩阵中表示的所有角落。 – Harph

+0

噢好吧,我有点困惑。雅由macarthy列出的角落检测将永远是你最好的选择。 – 2011-02-23 17:33:39