2

如前所述,我试图从应用边缘检测的图像中获取两条模糊线之间的距离。作为示例,请查看下图以进行说明。

在此处输入图像描述

如您所见,线条形状不正确。理想情况下,我想要的是从上面显示的每条线中获取最远的点,并计算它们之间的距离。这对 OpenCV 可行吗?我知道我可以使用幅度函数来适当地计算距离,但问题在于实际上首先要找到最远的点。

有人会知道我该如何解决这个问题吗?

4

1 回答 1

1

如果您知道这些线上的两个点,那么您可以使用 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;
}

我希望这有帮助。

于 2016-06-27T13:47:24.710 回答