如何在Matlab中绘制图像线?

时间:2015-06-06 21:08:31

标签: image matlab line

我想在图片上画一条线,但它只画45度角的线条。线似乎只对x坐标变化做出反应。

function demoOnImageClick
clc;clear;close all;

imObj = rand(500)
figure;
hAxes = axes();
imageHandle = imshow(imObj);
set(imageHandle,'ButtonDownFcn',@ImageClickCallback);

function ImageClickCallback ( objectHandle , eventData )
axesHandle  = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint'); 
coordinates = coordinates(1,1:2);
line([0 coordinates (1)], [0 coordinates (2)]);
message     = sprintf('x: %.1f , y: %.1f',coordinates (1) ,coordinates (2));
helpdlg(message);
end

end

1 个答案:

答案 0 :(得分:2)

删除坐标和索引之间的空格似乎可以解决问题。

line([0 coordinates(1)], [0 coordinates(2)]);

我相信你的代码,MATLAB画了两行:第一行从(0,0)到(坐标,坐标),它只使用第一个x值,然后第二行来自(坐标,坐标)到(1,2)。

希望这有帮助!