经过Hough线变换,可以得到一些线段集合,对于这些线段,每一条线段给的是两个值,在极坐标下面的极径和极角
,那么如何画出这样的每条直线呢,可以用到line函数,但是line 函数中有两个参数需要确定,pt1和pt2。
如图所示:
因此有如下画图代码
for (i = 0; i < lines.size(); i++)
{
fRho = lines[i][0];
fTheta = lines[i][1];
Point pt1, pt2;
double a = cos(fTheta);
double b = sin(fTheta);
double x0 = a*fRho;
double y0 = b*fRho;
pt1.x = cvRound(x0 + 100 * (-b));
pt1.y = cvRound(y0 + 100 * (a));
pt2.x = cvRound(x0 - 100 * (-b));
pt2.y = cvRound(y0 - 100 * (a));
line(ColorImage, pt1, pt2, Scalar(55, 100, 195), 1, LINE_AA);
}
这样,pt1和pt2 两点确定可以画出直线,不过这种方法只能画出直线,不能确定线段是从哪开始到哪儿结束。