处理过程写的比较简单,先cvSmooth,然后直接cvCanny,接着利用cvHoughLines2来画线。但是canny、
后的图像看着挺正常的,就是画线划不完全,请问该怎么处理?请顺便请帮忙解释下cvHoughLines2(double rho,double theta)这两个参数,谢谢,感激不尽
三张图片分别为原图,canny后的图片,在原图上画线后的图像
IplImage* tem = cvLoadImage("d:\\pic\\3.bmp");
IplImage* deal = cvCreateImage(cvGetSize(tem),8,1);
cvCvtColor(tem,deal,CV_RGB2GRAY);
cvShowImage("src",deal);
cvSmooth(deal,deal);
cvCanny(deal,deal,50,150);
cvShowImage("canny",deal);
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* seq = 0;
seq = cvHoughLines2(deal,storage,CV_HOUGH_PROBABILISTIC,1,3.14/180,1);
for (int i=0;seq!=NULL;seq=seq->h_next,i++)
{
CvPoint* point = (CvPoint*)cvGetSeqElem(seq,i);
cvLine(tem,point[0],point[1],CV_RGB(255,0,0),2);
}
cvShowImage("line",tem);