我想编辑正在显示的一系列图像中的坐标轴。如何在MATLAB中编辑图像的轴以反转方向?
这是我的形象看起来像:
正如你可以看到,它的范围从0到从顶部约500至底部。我可以反转吗? 另外,我想镜像所显示的图像,以便它从左到右......或者如果可能的话,让轴从右到左显示。
我想编辑正在显示的一系列图像中的坐标轴。如何在MATLAB中编辑图像的轴以反转方向?
这是我的形象看起来像:
正如你可以看到,它的范围从0到从顶部约500至底部。我可以反转吗? 另外,我想镜像所显示的图像,以便它从左到右......或者如果可能的话,让轴从右到左显示。
要扭转一个轴,您可以设置current axes到'reverse'
的'XDir'
或'YDir'
属性:
set(gca,'XDir','reverse'); %# This flips the x axis
请记住,这样翻转轴翻转中的情节都为好。这可能不是你想为y轴做的事情。你可能只是想翻转Y轴标签,您可以通过修改下列方式'YTickLabel'
物业办:
yLimits = get(gca,'YLim'); %# Get the y axis limits
yTicks = yLimits(2)-get(gca,'YTick'); %# Get the y axis tick values and
%# subtract them from the upper limit
set(gca,'YTickLabel',num2str(yTicks.')); %'# Convert the tick values to strings
%# and update the y axis labels
Im = imread('onion.png');
Im = flipdim(Im ,1); % vertical flip the image.
axis xy; %set the xy to be at (0,0), this flips the image back again.
而呐喊DEE斗图像现在具有了一个Y轴范围从底部到顶部!
当我使用IMAGE或IMAGESC函数在MATLAB中显示图像时,如何反转y轴?Another solution from mathworks
我发现gnovice的答案有帮助,但它需要一些调整。我认为以下是在y轴上反转标签的更通用的方法。只需按降序和重新标记排序y标记号。
yTicks = get(gca,'YTick');
yTicks_reverse = sort(yTicks,2,'descend');
set(gca,'YTickLabel',num2str(yTicks_reverse.'));
更快,更容易,我想:'image(Im); set(gca,'YDir','normal')' – 2016-08-22 15:24:50
谢谢你完美的作品!感谢您添加评论,以便我能够理解代码的工作原理! - 另外一个问题,我可以改变x轴/ y轴的值吗? – NLed 2010-05-19 14:03:45
@ZaZu:您可以通过更改轴的XTick和YTick属性来更改轴的值。如果将“XTickLabelMode”和“YTickLabelMode”属性设置为“auto”(默认情况下,当您未修改标签时),则更改刻度值后标签将自动更新。否则,你将不得不自己更新标签。 – gnovice 2010-05-19 14:13:48
谢谢,简直太神奇了:) – NLed 2010-05-19 14:35:12