您是否查看过OpenCV 文档中的示例?如果您使用该函数HoughLinesP
,您将获得线条的 4 个坐标,因此绘制线条非常容易。我从文档中复制示例:
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
中,您可以获得图像中所有线条的坐标。一旦你选择了停车场的两条线,你只需要使用它们的坐标来绘制新的线。例如,如果您的第一行在 indexk1
中,第二行在 中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 );