c++ opencv 得到直线交点

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);
}

猜你喜欢

转载自blog.csdn.net/qq_41648925/article/details/125489079