我有一个白色和黑色像素的二进制图像。我需要在二进制图像中搜索加号(3x3)。
0
:用于白色像素
1
:用于暗像素
00000000
01000100
01001110
00000100
00000000
01000000
00100110
00000000
上面的二进制图片中有一个加号。如何使用霍夫变换找到?霍夫空间的维度是什么?
我的方法是在上图中找到两行,但我不确定。我不是在寻找代码,只是解释我如何找到加号。
答案 0 :(得分:1)
Hough空间中的一个点需要完整描述您尝试定位的对象。如果您正在寻找无界线,您通常会在霍夫空间中存储线的极坐标(角度和到原点的距离)。当试图找到3x3加号时,这种符号的中心像素的位置恰好可以完全描述它。毕竟,如果您知道中心像素的位置,就会知道其他黑色像素在哪里。因此,您将中心像素位置存储在霍夫空间中,因此其维度为2。
现在,填充霍夫空间的方式通常如下:
对于您遇到的黑白图像中的每个黑色像素,您都认为它是感兴趣对象的一部分。但是,知道(x,y)处的像素是感兴趣对象的一部分,不足以在Hough空间中定位该对象。更确切地说,Hough空间中将有多个对象都包含(x,y)处的特定像素。此时,您需要弄清楚如何枚举所有这些对象。完成后,只需为您枚举的每个对象增加Hough空间中的值。
在您的情况下,枚举对象非常简单,因为您需要做的就是枚举3x3加号模式中的所有黑色像素,并为每个这样的像素计算出从该像素到中心像素的向量。一旦你有一个加号的像素和一个矢量到中心像素的位置,你也知道中心像素的位置。那个位置是你需要增加的霍夫空间中的一个点。