opencv 使用自己编写的HoughLinesP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38204686/article/details/79346457
//霍夫变换
	vector<Vec2f> lines;
    HoughLines(img, lines, 1, CV_PI/90, 50); 
    
	//删除一些不需要的直线
	for(vector<Vec2f>::iterator it=lines.begin();it!=lines.end();)
	{
		 //小于5度    大于175度     85-95    
		 if(((*it)[1]<CV_PI/180*5)||
			 ((*it)[1]>CV_PI/180*175)||
			 (((*it)[1]>CV_PI/180*85)&&((*it)[1]<CV_PI/180*95))) 
		 {
			 ++it; 
		 }
		 else
			 it=lines.erase(it);
	}

	vector<Vec4i> points;
	//自己编写的函数
	HoughLinesP(img,lines,points,50,3);

	//为了画绿线 单通道转换为三通道
    cvtColor(img, img, CV_GRAY2BGR);

	//画出线段
	for( size_t i = 0; i < points.size(); i++ )  
    {
		//绿线
		line( img, Point(points[i][0],points[i][1]), Point(points[i][2],points[i][3]), Scalar(0,255,0), 1, CV_AA); 
    }  

猜你喜欢

转载自blog.csdn.net/qq_38204686/article/details/79346457