2010-05-19 216 views
13

我想编辑正在显示的一系列图像中的坐标轴。如何在MATLAB中编辑图像的轴以反转方向?

这是我的形象看起来像:

parabola

正如你可以看到,它的范围从0到从顶部约500至底部。我可以反转吗? 另外,我想镜像所显示的图像,以便它从左到右......或者如果可能的话,让轴从右到左显示。

回答

17

要扭转一个轴,您可以设置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 
+0

谢谢你完美的作品!感谢您添加评论,以便我能够理解代码的工作原理! - 另外一个问题,我可以改变x轴/ y轴的值吗? – NLed 2010-05-19 14:03:45

+0

@ZaZu:您可以通过更改轴的XTick和YTick属性来更改轴的值。如果将“XTickLabelMode”和“YTickLabelMode”属性设置为“auto”(默认情况下,当您未修改标签时),则更改刻度值后标签将自动更新。否则,你将不得不自己更新标签。 – gnovice 2010-05-19 14:13:48

+0

谢谢,简直太神奇了:) – NLed 2010-05-19 14:35:12

2
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

2

我发现gnovice的答案有帮助,但它需要一些调整。我认为以下是在y轴上反转标签的更通用的方法。只需按降序和重新标记排序y标记号。

yTicks = get(gca,'YTick'); 
yTicks_reverse = sort(yTicks,2,'descend');          
set(gca,'YTickLabel',num2str(yTicks_reverse.')); 
+0

更快,更容易,我想:'image(Im); set(gca,'YDir','normal')' – 2016-08-22 15:24:50

0

我在这里重定向从一个重复的问题: Flipping axis ticks

什么“ALE”想做的事只是有翻转Y轴方向是自上而下的。如果这是唯一需要的东西,而不是别的,我会用:

axis ij