Effacer les filtres
Effacer les filtres

How to reverse Y axis on image?

310 vues (au cours des 30 derniers jours)
Elisa Lafforgue
Elisa Lafforgue le 29 Juin 2018
Commenté : Lana Neoricic le 7 Jan 2021
Hello,
First of all, I know this question is dumb and that there is plenty of thread on it, but I could not find any solution in those. I already tried a lot of things and it did not work for me. Thus I came here for assistance.
I use the code below to show an image of a flame. In order to mesure the flame length, I have to plot axis. I managed to have axis and all, with a custom origin point, but I could not reverse the y axis.
figure(7);clf;
Image = 'input.jpg';
[rows, columns, ColorChannels] = size(Image);
origin = [center] % center is a well defined coordinates
xdata = -origin(1): columns - origin(1);
ydata = -origin(2): columns - origin(2);
imshow(Image, 'XData', xdata, 'YData', ydata);
axis on;
grid on;
I already tryed a lot of different solutions I found here and it seems some of them have no effect at all So for:
set(gca,'YDir','reverse')
set(gca,'YDir','normal')
set(gcf,'YDir','reverse')
axis ij
set(hAxes,'YDir','reverse')
Some inversed the whole image (I just want the y axis reversed), such as
fliplr or flipud (ydata) in the imshow
I suppose it might be the "imshow" doing but my image is not from a folder but from a previous matlab code (my figure show the image created just before this part of the code in matlab and this image is not saved anywhere in my folders) so I don't know if there is another solution than imshow for this case.
Do I use the code to reverse axis right? Is there any other solutions?
Ps: I tried to put those codes above in different location (before and after the "imshow") yet it still has no effect at all
  3 commentaires
Dogukan Engin
Dogukan Engin le 7 Jan 2019
Hello,
I also need help on this one.
Thanks,
Rik
Rik le 7 Jan 2019
Since there is an accepted answer: did you try it, and if so, how didn't it work?

Connectez-vous pour commenter.

Réponse acceptée

Sergey Efremov
Sergey Efremov le 29 Août 2018
By default, y axis of an image is upside-down, values ascending from top down. If you set(gca,'YDir','normal'), you will reverse y axis. (gca,'YDir','reverse') will only leave y axis unchanged from default.
  1 commentaire
Lana Neoricic
Lana Neoricic le 7 Jan 2021
Wow, this one is not obvious at all! Thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

Elisa Lafforgue
Elisa Lafforgue le 31 Août 2018
Well, what I did to solve it is just flipping the image before to put the axis then
axis xy
It does the trick but it would give nausea at any matlab expert I think

Catégories

En savoir plus sur Graphics Object Programming dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by