问题描述
我有这个问题:我在图像中有一些线条,我必须找到它们的交点。我做了一个双循环。一个找到线条,另一个找到它们的交点,它起作用了。但问题是循环找到了双交叉点,因为它取了一条线并与其他线进行了比较,然后取了第二条线并与所有其他线进行了比较,因此它找到了由第一条线创建的相同交叉点。 代码如下:
for (int j = 0; j < lines.size() && (j < getQuantity()); j++){
pt1.x = cvRound(x0 + 1000 * (-b));
pt1.y = cvRound(y0 + 1000 * (a));
pt2.x = cvRound(x0 - 1000 * (-b));
pt2.y = cvRound(y0 - 1000 * (a));
for (size_t i = 0; i < (lines.size()) && (i < getQuantity()); i++)
{
Point pt3,pt4;
pt3.x = cvRound(x00 + 1000 * (-b1));
pt3.y = cvRound(y00 + 1000 * (a1));
pt4.x = cvRound(x00 - 1000 * (-b1));
pt4.y = cvRound(y00 - 1000 * (a1));
if (pt2.x - pt1.x != 0) {
double m1 = (pt2.y - pt1.y) / (pt2.x - pt1.x);
double m2 = (pt4.y - pt3.y) / (pt4.x - pt3.x);
double q1 = pt1.y - m1 * pt1.x;
double q2 = pt3.y - m2 * pt3.x;
intersection=Point((q2 - q1) / (m1 - m2),m1 * (q2 - q1) / (m1 - m2) + q1);
circle(src2,intersection,5,Scalar(0,255,0));
}}
line(src2,pt1,pt2,255),1,LINE_AA);
感谢您的建议
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)