《霍夫变换检测直线》由会员分享,可在线阅读,更多相关《霍夫变换检测直线(2页珍藏版)》请在金锄头文库上搜索。
1、1. #include2. #include 3. #include 5.int main(void)6.(7.IplImage *src = cvLoadImage(D:xgmiaoimage1jpg”,0);8.if (src)9.(10.IplImage *dst = cvCreateImage(cvGetSize(src),8,1);11.IplImage *color_dst = cvCreateImage(cvGetSize(src),8,3)12.CvMemStorage *storage = cvCreateMemStorage();13.CvSeq *lines = 0;14
2、.int i ;15.cvCanny(src,dst,50,200,3);16.17.cvCvtColor(dst,color_dst,CV_GRAY2BGR);18.#if 019.lines = cvHoughLines2(dst,storage,CV_HOUGH_STANDARD,1,C20.21.for (i=0;itotal;i+)22.(23.float *line = (float *)cvGetSeqElem(lines,i);24.float rho = line0;25.float theta = line1;26.CvPoint pt1,pt2;27.double a =
3、 cos(theta);28.double b = sin(theta);29.if (fabs(a)height;34.35.else if (fabs(b)width;40.41.else42.(43.pt1.x = 0;44.pt1.y = cvRound(rho/b);4.,_PI/180,150,0,0);45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.pt2.x = cvRound(rho/a);pt2.y = 0;cvLine(color
4、_dst,pt1,pt2,CV_RGB(255,0,0),1,8);#elselines = cvHoughLines2(dst,storage,CV_HOUGH_PROBABILISTIC,1,CV_PI/180,80,30,5);for (i=0;itotal;i+)(CvPoint *line = (CvPoint *)cvGetSeqElem(lines,i);cvLine(color_dst,line0,line1,CV_RGB(255,0,0),1,CV_AA);#endifcvNamedWindow(Source);cvShowImage(Source”,src);cvNamedWindow(Hough);cvShowImage(Hough”,color_dst);cvWaitKey(0);cvReleaseImage(&src);cvReleaseImage(&dst);cvReleaseImage(&color_dst);cvReleaseMemStorage(&storage);cvDestroyAllWindows();return 1;