原理可以看看那些大神的博客http://blog.csdn.net/poem_qianmo/article/details/26977557
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
CvSeq *Line;
int main()
{
IplImage *src=cvLoadImage("line.jpg");
IplImage *src_RBG=cvCreateImage(cvGetSize(src),8,3);
IplImage *src_gray=cvCreateImage(cvGetSize(src),8,1);
cvCvtColor(src,src_gray,CV_RGB2GRAY);
cvThreshold(src_gray,src_gray,100,255,0);
cvCanny(src_gray,src_gray,100,255,3);
// cvCopyImage(src_gray);
//vector<Vec4i> lines;
CvMemStorage *storage=cvCreateMemStorage(0);
Line=cvHoughLines2(src_gray,storage,CV_HOUGH_PROBABILISTIC ,1,CV_PI/180,50,30,10);
// HoughLinesP()
for(int i=0;i<Line->total ;i++)
{
CvPoint* line = (CvPoint*)cvGetSeqElem(Line ,i);
cvLine( src, line[0], line[1], CV_RGB( 155,155,55), 3, 8 );
cvLine( src_gray, line[0], line[1], CV_RGB( 155,155,55), 3, 8 );
cvLine( src_RBG, line[0], line[1], CV_RGB( 155,155,55), 3, 8 );
}
cvShowImage("src_gray",src_gray);
cvShowImage("src",src);
cvShowImage("src_RBG",src_RBG);
cvWaitKey();
return 0;
}
作为初学者,有不对的地方请指导