标准霍夫变换本质上是把图像映射到它的参数空间上,它需要计算所有的M个边缘点,这样它的运算量和所需内存空间都会很大。如果在输入图像中只是处理m(m HoughLinesP函数就是利用概率霍夫变换来检测直线的。它的一般步骤为: 1、随机抽取图像中的一个特征点,即边缘点,如果该点已经被标定为是某一条直线上的点,则继续在剩下的边缘点中随机抽取一个边缘点,直到所有边缘点都抽取完了为止; 2、对该点进行霍夫变换,并进行累加和计算; 3、选取在霍夫空间内值大的点,如果该点大于阈值的,则进行步骤4,否则回到步骤1; 4、根据霍夫变换得到的大值,从该点出发,沿着直线的方向位移,从而找到直线的两个端点; 5、计算直线的长度,如果大于某个阈值,则被认为是好的直线输出,回到步骤1。 HoughLinesP函数的原型为: void HoughLinesP(InputArray image,OutputArray lines, double rho, double theta, int threshold, double minLineLength=0,double maxLineGap=0 ) image为输入图像,要求是8位单通道图像 lines为输出的直线向量,每条线用4个元素表示,即直线的两个端点的4个坐标值 rho和theta分别为距离和角度的分辨率 threshold为阈值,即步骤3中的阈值 minLineLength为最小直线长度,在步骤5中要用到,即如果小于该值,则不被认为是一条直线 maxLineGap为大直线间隙,在步骤4中要用到,即如果有两条线段是在一条直线上,但它们之间因为有间隙,所以被认为是两个线段,如果这个间隙大于该值,则被认为是两条线段,否则是一条。 HoughLinesP函数是在sources/modules/imgproc/src/hough.cpp文件中被定义的: 另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。void cv::HoughLinesP( InputArray _image, OutputArray _lines,
double rho, double theta, int threshold,
double minLineLength, double maxGap )
{
Ptr
文章标题:Opencv2.4.9函数HoughLinesP分析-创新互联
本文网址:http://cdweb.net/article/igihh.html