如何在 Matlab 中在图像上画一条线?

How to draw a line on image in Matlab?

我想在图片上画一条线,但是它只能画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

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

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

我相信使用您的代码,MATLAB 绘制了两条线:第一条线从 (0,0) 到 (coordinates,coordinates),它仅使用第一个 x 值,第二条线来自 (coordinates , 坐标) 到 (1,2).

希望对您有所帮助!