图像上的刻度线是否可能以像素的边缘为中心?

时间:2010-04-16 22:26:43

标签: image matlab plot center axis-labels

如果我使用image()命令在Matlab中制作一个4像素乘4像素的图像,它会将刻度标记居中在像素的中间。我希望刻度线在像素的左下角居中。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以指定像素的x和y坐标,并将它们移动0.5:

image([0.5,3.5],[0.5,3.5],magic(4))

答案 1 :(得分:1)

尝试以下方法:

a = randi([0 255], [4 4]);
figure, imagesc(a), caxis([0 255])

b = zeros( size(a)+1 );
b(1:end-1,1:end-1) = a;
figure, pcolor(b), caxis([0 255]), axis ij

请注意,我扩展了矩阵a,因为pcolor会删除最后一行/列。

A B

答案 2 :(得分:1)

我认为这段代码会做你想要的。它仅在像素的边缘放置刻度线:

A = ...;  %# Your 4-by-4 matrix
image([0.5 3.5],[0.5 3.5],A);      %# Pixel edges are at 0, 1, 2, 3, and 4
set(gca,'XTick',0:4,'YTick',0:4);  %# Place tick marks at 0, 1, 2, 3, and 4