资源描述:
《用Hough变换检测直线和圆.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、特殊图像变换1、HoughLines功能:利用Hough变换在二值图像中找到直线格式:CvSeq*cvHoughLines2(CvArr*image,void*line_storage,intmethod,b5E2RGbCAPdoublerho,doubletheta,intthreshold,doubleparam1=0,doubleparam2=0>。参数:image:输入8-比特、单通道(二值>图像,其内容可能被函数所改变line_storage:检测到的线段存储仓.可以是内存存储仓(此种情况下,一个线段序列在存储仓中被创建,并且由函数
2、返回),或者是包含线段参数的特殊类型<见下面)的具有单行/单列的矩阵(CvMat*>。矩阵头为函数所修改,使得它的cols/rows将包含一组检测到的线段。如果line_storage是矩阵,而实际线段的数目超过矩阵尺寸,那么最大可能数目的线段被返回(线段没有按照长度、可信度或其它指标排序>.p1EanqFDPwmethod:Hough变换变量,是下面变量的其中之一:·CV_HOUGH_STANDARD-传统或标准Hough变换.每一个线段由两个浮点数 (ρ,θ>表示,其中ρ是点与原点(0,0>之间的距离,θ线段与x-轴之间的夹角。因此,矩阵
3、类型必须是CV_32FC2type.DXDiTa9E3d·CV_HOUGH_PROBABILISTIC-概率Hough变换(如果图像包含一些长的线性分割,则效率更高>.它返回线段分割而不是整个线段。每个分割用起点和终点来表示,所以矩阵<或创建的序列)类型是CV_32SC4.RTCrpUDGiT·CV_HOUGH_MULTI_SCALE-传统Hough变换的多尺度变种。线段的编码方式与CV_HOUGH_STANDARD的一致。5PCzVD7HxArho:与象素相关单位的距离精度theta:弧度测量的角度精度threshold:阈值参数。如果相应
4、的累计值大于threshold,则函数返回的这个线段.param1:第一个方法相关的参数:·对传统Hough变换,不使用(0>.·对概率Hough变换,它是最小线段长度.·对多尺度Hough变换,它是距离精度 rho的分母(大致的距离精度是rho而精确的应该是rho/param1>.jLBHrnAILgparam2:第二个方法相关参数:5/5·对传统Hough变换,不使用(0>.·对概率Hough变换,这个参数表示在同一条直线上进行碎线段连接的最大间隔值(gap>,即当同一条直线上的两条碎线段之间的间隔小于param2时,将其合二为一。xHA
5、QX74J0X·对多尺度Hough变换,它是角度精度theta的分母(大致的角度精度是theta而精确的角度应该是theta/param2>.LDAYtRyKfE函数cvHoughLines2实现了用于线段检测的不同Hough变换方法.Example.用Houghtransform检测线段#include#include#includeintmain(intargc,char**argv>{IplImage*src。if(argc==2&&(src=cvLoadImage(argv[1],0>
6、>!=0>Zzz6ZB2Ltk{IplImage*dst=cvCreateImage(cvGetSize(src>,8,1>。dvzfvkwMI1IplImage*color_dst=cvCreateImage(cvGetSize(src>,8,3>。rqyn14ZNXICvMemStorage*storage=cvCreateMemStorage(0>。CvSeq*lines=0。inti。cvCanny(src,dst,50,200,3>。cvCvtColor(dst,color_dst,CV_GRAY2BGR>。#if1lines=cv
7、HoughLines2(dst,storage,CV_HOUGH_STANDARD,1,CV_PI/180,150,0,0>。EmxvxOtOcofor(i=0。itotal。i++>{float*line=(float*>cvGetSeqElem(lines,i>。floatrho=line[0]。floattheta=line[1]。CvPointpt1,pt2。doublea=cos(theta>,b=sin(theta>。if(fabs(a><0.001>{pt1.x=pt2.x=cvRound(rho>。pt1.y=
8、0。pt2.y=color_dst->height。}elseif(fabs(b><0.001>{pt1.y=pt2.y=cvRound(rho>。pt1.x=0。