您的位置:首页 > 运维架构

opencv 使用自己编写的HoughLinesP

2018-02-22 11:53 393 查看
//霍夫变换
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);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: