您是否已檢出OpenCV doc中的示例?如果您使用功能HoughLinesP
,您將得到線條的4個座標,因此繪製線條非常簡單。我複製例如,從DOC:
vector<Vec4i> lines;
HoughLinesP(dst, lines, 1, CV_PI/180, 80, 30, 10);
for(size_t i = 0; i < lines.size(); i++)
{
line(color_dst, Point(lines[i][0], lines[i][1]),
Point(lines[i][2], lines[i][3]), Scalar(0,0,255), 3, 8);
}
在矢量lines
你得到的圖像中的所有行的座標。一旦你選擇了停車場的兩條線,你只需要使用它們的座標來繪製新的線。例如,如果第一行是指數,第二個在k2
,代碼可能會是這樣的:
line(color_dst, Point(lines[k1][0], lines[k1][1]),
Point(lines[k2][0], lines[k2][1]), Scalar(0,0,255), 3, 8);
line(color_dst, Point(lines[k1][2], lines[k1][3]),
Point(lines[k2][2], lines[k2][3]), Scalar(0,0,255), 3, 8);
你有Hough變換的直線方程。你必須在那條線上行走,找到顏色的不連續點:段的終點。不連續點從白色變爲灰色或從白色變爲綠色 –
感謝您的回覆,您能否更詳細地解釋代碼?我發現opencv不能檢測色彩空間,並且可以跟蹤houghLine使用的顏色像素。 – user2649244