我试图找到一种简单的方法来查找图像中从一个点(设置在原点)到另一点(任意设置)的距离(x,y 坐标)。理想情况下,这将是 matlab 代码,允许在图像上单击两次以设置原点,然后设置第二个点,然后输出坐标。我该怎么做呢?
问问题
1185 次
1 回答
0
图像坐标系的原点在图像的左上角点 (1,1)(不是 (0,0))。无论如何,如果您保留该点或任何其他点的原点,假设您的原点为 P1(x1,y1),另一个点为 P2(x2,y2)。不用于计算这些点之间的距离,您可以使用不同的指标。三个著名的指标是: 三个著名的指标(计算两点之间的距离): 1- 曼哈顿距离
d = abs(x1-x2) + abs(y1-y2)
2-欧几里得距离
d = sqrt((x1-x2)^2 + (y1-y2)^2)
3- 闵可夫斯基距离
d = (abs(x1-x2)^c + abs(y1-y2)^c)^(1/c)
在 MATLAB 中,您可以使用 ginput 函数,它提供了鼠标选择像素的功能,因此您首先加载图像,然后选择点:
I = imread('c:\test.jpg');
imshow(I);
[X,Y] = ginput(2);
2 是选择数据的数量(从图像中选择像素),那么你可以使用这样的东西:
d = ((X(1) - X(2)) ^ 2 + (Y(1) - Y(2)) ^ 2) ^ 0.5;
您还可以使用任何其他指标....
于 2013-04-24T20:46:52.780 回答