考虑使用某些通用描述的matlab imagesc()轴显示的图像,例如10x10像素,其中每个像素的强度值均为 [0 255] 。 / p>
使用图像分析工具包中的 imline()方法,我希望沿用户交互定义的直线检索像素强度值。通常称为“线条轮廓”。这里的重要区别是与X轴或Y轴平行的线是不够的。该行必须由用户以交互方式绘制。
到目前为止,我已经研究过Matlab方法 improfile()和 impixel(),但到目前为止,我还没有设法获得所需的结果。
答案 0 :(得分:0)
这是一段代码,用于读取单击图像(objectHandle
)的位置,并更新文本框中的行(currentLine
句柄)值和字符串(Coords
句柄)。< / p>
%% Code here
axis tight
imageHandle = imshow('input\foo.jpg');
set(imageHandle,'ButtonDownFcn',{@ImageClickCallback,Coords,currentLine});
%% Code there
function ImageClickCallback (objectHandle,~,Coords,currentLine)
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint'); %// This line reads the click
coordinates = coordinates(1,1:2);
LineX=get(currentLine,'xdata');
LineY=get(currentLine,'ydata');
set(currentLine,'xdata',[LineX,coordinates(1)])
set(currentLine,'ydata',[LineY,coordinates(2)])
set(Coords.X,'string',{'X';num2str(coordinates(1),'%.0f')})
set(Coords.Y,'string',{'Y';num2str(coordinates(2),'%.0f')})
end