如上所述,我试图通过应用边缘检测来获取图像中两条不明显线条之间的距离。作为示例,请查看下面的图像以获得说明。
如您所见,这些线条都是畸形的。理想情况下,我想要从上面显示的每条线获得最远点,并计算它们的距离。这可能与OpenCV有关吗?我知道我可以使用幅度函数来适当地计算距离,但问题在于实际上试图找到最远的点。
有人会知道如何解决这个问题吗?
答案 0 :(得分: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;
}
我希望这会有所帮助。