HoughLines2霍夫直线的提取

来源:互联网 发布:今日头条 阿里云大厦 编辑:程序博客网 时间:2024/05/21 03:26

原理可以看看那些大神的博客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;
}
作为初学者,有不对的地方请指导
0 0
原创粉丝点击