opencv求任意两条直线交点

函数功能:求两条直线交点

求两条直线交点

/*函数功能:求两条直线交点*/
/*输入:两条Vec4i类型直线*/
/*返回:Point2f类型的点*/
Point2f getCrossPoint(Vec4i LineA, Vec4i LineB)
{double ka, kb;ka = (double)(LineA[3] - LineA[1]) / (double)(LineA[2] - LineA[0]); //求出LineA斜率kb = (double)(LineB[3] - LineB[1]) / (double)(LineB[2] - LineB[0]); //求出LineB斜率Point2f crossPoint;crossPoint.x = (ka*LineA[0] - LineA[1] - kb*LineB[0] + LineB[1]) / (ka - kb);crossPoint.y = (ka*kb*(LineA[0] - LineB[0]) + ka*LineB[1] - kb*LineA[1]) / (ka - kb);return crossPoint;
}

opencv求任意两条直线交点,并绘制出来

求任意两条直线交点,加两个个for循环即可,但是要注意相同直线不需要求交点。

    vector corners;//线的交点存储  for (unsigned int i = 0; ifor (unsigned int j = i + 1; jif (pt.x >= 0 && pt.y >= 0){corners.push_back(pt);}}}//【4】依次在图中绘制出角点for (size_t i = 0; i < corners.size(); i++){circle(dstImage, corners[i], 3, CV_RGB(0, 255, 0), 2);}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部