OpenCV计算点到直线的距离 数学法
我们在检测图像的边缘图时,有时需要检测出直线目标,hough变换检测出直线后怎么能更进一步的缩小区域呢?其中,可以根据距离来再做一判断,就涉及到了点与直线的距离问题。
点到直线距离代码如下:
1 //=================================排除干扰直线============================================ 2 // 根据中心点与直线的距离 排除干扰直线 3 // 点(x0,y0)到直线Ax+By+C=0的距离为d = (A*x0+B*y0+C)/sqrt(A^2+B^2) 4 double A, B, C,dis; 5 // 化简两点式为一般式 6 // 两点式公式为(y - y1)/(x - x1) = (y2 - y1)/ (x2 - x1) 7 // 化简为一般式为(y2 - y1)x + (x1 - x2)y + (x2y1 - x1y2) = 0 8 // A = y2 - y1 9 // B = x1 - x2 10 // C = x2y1 - x1y2 11 A = pt2.y - pt1.y; 12 B = pt1.x - pt2.x; 13 C = pt2.x * pt1.y - pt1.x * pt2.y; 14 //中心点坐标(coreX,coreY) 15 double coreX,coreY; 16 coreX = RIO.cols/2; 17 coreY = RIO.rows/2; 18 // 距离公式为d = |A*x0 + B*y0 + C|/√(A^2 + B^2) 19 dis = abs(A * coreX + B * coreY + C) / sqrt(A * A + B * B); 20 //=========================================================================================
1.// 变幻的大千世界, 浩瀚的知识海洋, 我只是: 一个IT的从业者, 一个知识的记录者, 一个知识的搬运工!////
2.// 文章可能是原创/转载/共享资源/混合整合作品,若有侵权,请联系我处理,谢谢!////