方程在笛卡尔坐标系的线的:
Y = K * X + B
两条线Y = K1 * X + B 1,Y = K2 * X + b2为平行的,如果K1 = K2。
所以你需要计算每个检测线的系数k。
为了唯一找出你需要知道的两点属于线坐标的直线的方程。
具有HoughLines(С++)发现线之后:
vector lines;
HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0);
你有向量线,其存储在极坐标中检测到的线的参数(R,θ-)。你需要将它们在直角坐标转移:在C++
这里例如:
for(size_t i = 0; i < lines.size(); i++)
{
float rho = lines[i][0], theta = lines[i][1];
Point pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
pt1.x = cvRound(x0 + 1000*(-b)); //the first point
pt1.y = cvRound(y0 + 1000*(a)); //the first point
pt2.x = cvRound(x0 - 1000*(-b)); //the second point
pt2.y = cvRound(y0 - 1000*(a)); //the second point
}
在已经得到了线的这两点就可以计算出它的方程。