Ada*_*dam 6 java signals image transform image-processing
如何在文本图像上实现Hough变换?我正在寻找伪代码(最终将在java中).
以下是一些背景信息:
给定图像,确定线的等式y = mx + b.通常,霍夫变换以极坐标表示,使得Rho = y*sin(theta) + x*cos(theta).(我不确定这些X和Y值对应于图像).
我们只对它们Rho和theta价值感兴趣并绘制它们.累加器中有多个点的位置(我知道一些实现,而不是执行)被认为是一条线.
我不明白的问题是如何查找rho和theta更新累加器.
霍夫变换的最简单情况是用于检测直线的线性变换.在图像空间中,直线可以描述为y = mx + b,并且可以对每对图像点(x,y)进行图形绘制
所以这告诉你什么x和y对应于图像中的背面.
在霍夫变换中,主要思想是将直线的特征视为图像点(x1,y1),(x2,y2)......,而是根据其参数,例如斜率参数m和截距参数b.
基于该事实,直线y = mx + b可以表示为参数空间中的点(b,m).然而,人们面临的问题是垂直线产生参数m和b的无界值.出于计算原因,因此最好对霍夫变换中的线使用表示为(θ)的不同参数对.
参数rho表示线与原点之间的距离,而θ是从原点到该最近点的矢量角.
这告诉你什么rho和theta对应:它们是斜率的极坐标中的表示和您试图在图像中描述的线的截距.
在SourceForge上,您可以找到C++hough变换的实现.
您应该能够解释我在上一个链接中指出的代码的描述可能如下:
霍夫变换算法使用称为累加器的数组来检测线y = mx + b的存在.
例如,线性Hough变换问题有两个未知参数:m和b.
对于每个像素及其邻域,霍夫变换算法确定在该像素处是否有足够的边缘证据.如果是这样,它将计算该行的参数,然后查找参数所属的累加器的bin,并增加该bin的值.
通过查找具有最高值的区间,通常通过在累加器空间中查找局部最大值,可以提取最可能的线条
| 归档时间: |
|
| 查看次数: |
7356 次 |
| 最近记录: |