Matlab中沿imline段的像素强度值

时间:2016-03-16 16:30:34

标签: matlab image-processing pixels

考虑使用某些通用描述的matlab imagesc()轴显示的图像,例如10x10像素,其中每个像素的强度值均为 [0 255] 。 / p>

使用图像分析工具包中的 imline()方法,我希望沿用户交互定义的直线检索像素强度值。通常称为“线条轮廓”。这里的重要区别是与X轴或Y轴平行的线是不够的。该行必须由用户以交互方式绘制。

到目前为止,我已经研究过Matlab方法 improfile() impixel(),但到目前为止,我还没有设法获得所需的结果。

1 个答案:

答案 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