edu.51cto.comedu.51cto.comOpenCV3.1.0–图像处理教程edu.51cto.com讲师:贾志刚E-Mail:bfnh1998@hotmail.com微博:流浪的鱼-GloomyFishedu.51cto.com霍夫变换-直线霍夫直线变换介绍相关API学习代码演示edu.51cto.com霍夫直线变换介绍HoughLineTransform用来做直线检测前提条件–边缘检测已经完成平面空间到极坐标空间转换edu.51cto.com霍夫直线变换介绍edu.51cto.com霍夫直线变换介绍对于任意一条直线上的所有点来说变换到极坐标中,从[0~360]空间,可以得到r的大小属于同一条直线上点在极坐标空(r,theta)必然在一个点上有最强的信号出现,根据此反算到平面坐标中就可以得到直线上各点的像素坐标。从而得到直线edu.51cto.com从平面坐标变换到霍夫空间(极坐标)edu.51cto.com相关API学习标准的霍夫变换cv::HoughLines从平面坐标转换到霍夫空间,最终输出是表示极坐标空间霍夫变换直线概率cv::HoughLinesP最终输出是直线的两个点),(r),,,(1100yxyxedu.51cto.com相关API学习cv::HoughLines(InputArraysrc,//输入图像,必须8-bit的灰度图像OutputArraylines,//输出的极坐标来表示直线doublerho,//生成极坐标时候的像素扫描步长doubletheta,//生成极坐标时候的角度步长,一般取值CV_PI/180intthreshold,//阈值,只有获得足够交点的极坐标点才被看成是直线doublesrn=0;//是否应用多尺度的霍夫变换,如果不是设置0表示经典霍夫变换doublestn=0;//是否应用多尺度的霍夫变换,如果不是设置0表示经典霍夫变换doublemin_theta=0;//表示角度扫描范围0~180之间,默认即可doublemax_theta=CV_PI)//一般情况是有经验的开发者使用,需要自己反变换到平面空间edu.51cto.com相关API学习cv::HoughLinesP(InputArraysrc,//输入图像,必须8-bit的灰度图像OutputArraylines,//输出的极坐标来表示直线doublerho,//生成极坐标时候的像素扫描步长doubletheta,//生成极坐标时候的角度步长,一般取值CV_PI/180intthreshold,//阈值,只有获得足够交点的极坐标点才被看成是直线doubleminLineLength=0;//最小直线长度doublemaxLineGap=0;//最大间隔)edu.51cto.comHoughLinesP检测效果edu.51cto.com演示代码先进行边缘检测霍夫直线检测edu.51cto.comThankYou!edu.51cto.com