opencv 使用自己編寫的HoughLinesP
阿新 • • 發佈:2018-11-11
//霍夫變換 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); }