我有一张图片(每个像素的强度矩阵)。用matlab的imagesc绘制时,x,y轴显然以像素为单位。我知道1个像素在x和y方向上都对应于0.6250毫米。
如何仅改变图中轴的比例来显示毫米而不是像素,即,如何将xticks和yticks乘以0.6250,并在图中显示它?
我尝试过:
new_x = xticks * pixel_spacing(2);
set(gca,'xticklabels',new_x)
但是这会导致错误“无法将类型为'matlab.graphics.axis.Axes'的值用作索引。”
[imagesc
具有一种语法,您可以在其中指定像素的缩放比例(请参阅documentation)。
x = [1,size(img,2)] * pixel_spacing;
y = [1,size(img,1)] * pixel_spacing;
imagesc(x,y,img);
(假设img
是要显示的图像)
更改刻度标签的优点是,绘制在图像顶部的其他内容将使用相同的坐标,如检索鼠标光标的位置等等。这可能相关,也可能不相关,但是很高兴知道。
我知道了。
xticklabels(xticks * pixel_spacing(2))
yticklabels(yticks * pixel_spacing(1))