c++ opencv 得到直线交点
两条直线求交点
//得到交点
cv::Point get__point(cv::Point p1, cv::Point p2, cv::Point p3, cv::Point p4) {
int x, y;
int X1 = p1.x - p2.x;
int Y1 = p1.y - p2.y;
int X2 = p3.x - p4.x;
int Y2 = p3.y - p4.y;
if (X1 * Y2 == X2 * Y1)
return cv::Point((p2.x + p3.x) / 2, (p2.y + p3.y) / 2);
int A = X1 * p1.y - Y1 * p1.x;
int B = X2 * p3.y - Y2 * p3.x;
y = (A * Y2 - B * Y1) / (X1 * Y2 - X2 * Y1);
x = (B * X1 - A * X2) / (Y1 * X2 - Y2 * X1);
return cv::Point(x, y);
}