1.      用途

Hough变换是一种在图像中寻找直线,圆及其它简单形状的方法.当我们对图像进行边缘检测之后,可用Hough变换识别图像中的简单形状.该转换也是对图像的一种抽象(由繁到简).下面介绍最基本Hough变换:寻找直线算法.

2.      思路

Hough变换通过从直角坐标系到极坐标系的转换,将直角坐标系中的一条"直线",转换为极坐标系上的一个"点",落在这条"直线"上的像素点越多,这个极坐标中"点"的权越重,最终通过分析各个"点"的权重(局部最大值),获取重要线段.
为区别直角坐标系中的点和极坐标系中的点,下面我们将直角坐标系中的点称为像素点.

3.      具体实现


如图所示,假设我们有一个桃心图形,由多个红色像素点组成(红色为其有意义的像素点,即轮廓值),想提取出其中的直线.
如果将各个像素点连成直线,直线将会有很多条,有些有意义,有些没意义.一般认为像素点足够多的直线更具意义,比如图中的绿色和蓝色的直线.
在直角坐标系中,可以用斜截式y=kx+b来表示一条直线(k是斜率,b是y轴上的截距).
转换到极坐标系P(ρ,θ);ρ称为P点的极径(从原点到直线的垂直距离,上图中的虚线),θ称为P点的极角(极径与x轴的夹角).
直角坐标系中的一条"直线",可转换为极坐标系上的一个"点"(上图中的黑圈),也就是说:把直角坐标系中的多个像素点,对应成极坐标系中的一个点.落在该"直线"上的像素点越多,极坐标系中的该点的权重越大,通过比较权重,取得重要直线.

4.      总结

Hough变换通过映射,将一个形状识别问题,转换成了一个统计问题,在寻找直线的过程中,将落入一条直线上的点映射成了极径和极角(二元),在寻找圆的过程中,将落入圆弧上的点映射成了圆心点坐标x,y与半径r的组合(三元),通过映射简化了数据描述,映射后的数据也可以作为图像的一种抽象特征进行其它运算.
可其扩展到识别更复杂的形状,加入颜色更一步判断,以及利用基本形状之间的关系,层层抽象,组合出更加复杂的功能.

posted on 2017-04-28 08:02  xieyan0811  阅读(88)  评论(0编辑  收藏  举报