2010-05-19 600 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