matlab提取图像上的任意坐标点

如题所述

你把他保存在我的文档中的MATLAB文件夹里,然后以1111命名(我随便命名的)
在MATLAB里输入命令
a=imread('1111.jpg');
imshow(a)
此时图像就在MATLAB里显示出来了
然后用取坐标点命令
ginput
点图像上你想要的点A,I,J,K
然后回车
此时窗口上就出现了各个点的坐标了。他们之间的距离就可以算出,然后你再用比例关系,就可以算出实际距离了
我的运行后坐标是:1.170000000000000e+002 2.899999999999994e+001
1.140000000000000e+002 9.199999999999994e+001
1.100000000000000e+002 1.489999999999999e+002
1.060000000000000e+002 2.049999999999999e+002
注意系统默认坐标原点是在图片左上角
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-23
第一种途径:
ginput()函数
ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。函数调用形式为:
[x,y] = ginput(n)
[x,y] = ginput
[x,y,button] = ginput(...)
对于[x,y] = ginput(n),能使你从当前的坐标系中读取n个点,并返回这n个点的x,y坐标,均为nX1的向量。可以按回车提前结束读数。
[x,y] = ginput 可以无限的读取坐标直到按下回车键。
[x,y,button] = ginput(...) 返回x和y的坐标,以及button值(1=左键,2=中,3=右)或者按键的ASXII码值。
第二种途径:
利用figure的WindowButtonDownFcn属性。
当你在图上按下鼠标的时候,可通过该属性定义一个回调程序。回调程序可以是一个有效的Matlab表达式或者一个M文件。
那么为显示当前鼠标按下时的坐标值,我们可以将其定义为一个坐标获取和显示程序。 例如:
% 主函数 function test_mouse_track() figure; axis([-10,10,0,5]); set(gcf,'WindowButtonDownFcn',@ButttonDownFcn); % 回调函数 function ButttonDownFcn(src,event) pt = get(gca,'CurrentPoint');
x = pt(1,1);
y = pt(1,2); fprintf('x=%f,y=%f\n',x,y);
第2个回答  2019-12-06
图像上显示功能还是比较简单的生活状态,如果要找任意坐标点或者其他什么原因造成伤害