如前所述,我试图从应用边缘检测的图像中获取两条模糊线之间的距离。作为示例,请查看下图以进行说明。
如您所见,线条形状不正确。理想情况下,我想要的是从上面显示的每条线中获取最远的点,并计算它们之间的距离。这对 OpenCV 可行吗?我知道我可以使用幅度函数来适当地计算距离,但问题在于实际上首先要找到最远的点。
有人会知道我该如何解决这个问题吗?
如前所述,我试图从应用边缘检测的图像中获取两条模糊线之间的距离。作为示例,请查看下图以进行说明。
如您所见,线条形状不正确。理想情况下,我想要的是从上面显示的每条线中获取最远的点,并计算它们之间的距离。这对 OpenCV 可行吗?我知道我可以使用幅度函数来适当地计算距离,但问题在于实际上首先要找到最远的点。
有人会知道我该如何解决这个问题吗?
如果您知道这些线上的两个点,那么您可以使用 OpenCV 中的以下代码计算距离。
public double euclideanDistance(Point a, Point b){
double distance = 0.0;
try{
if(a != null && b != null){
double xDiff = a.x - b.x;
double yDiff = a.y - b.y;
distance = Math.sqrt(Math.pow(xDiff,2) + Math.pow(yDiff, 2));
}
}catch(Exception e){
System.err.println("Something went wrong in euclideanDistance function in "+Utility.class+" "+e.getMessage());
}
return distance;
}
我希望这有帮助。