霍夫曼变换是一种可以检测出某种特殊形状的算法,OpenCV中用霍夫曼变换来检测出图像中的直线、椭圆和其他几何图形。由它改进的算法,可以用来检测任何形状的图形。
传统Hough变换 : 枚举统计法
找到通过足够多数量的像素点的所有直线,它分析每个单独的像素,并识别出所有的可能经过它的直线。
当同一条直线穿过许多点,便意味着这条线的存在足够明显。
累加器
累加器就是用来记录某条直线被识别了多少次,霍夫曼最直接的想法是,计算所有可能的直线,找出重复数量最多的那几条,重复次数就是识别的阈值。
演算步骤
Hough transform演算步骤(以直线为例):
直线公式: y = ax – b
称(x,y)为图像空间的坐标,(a,b)为参数空间