Как изменить оси изображения в MATLAB, чтобы изменить направление?

Я хотел бы отредактировать оси в моей серии отображаемых изображений.

Вот как выглядит мое изображение:

parabola

Как вы можете видеть, он колеблется от 0 до 500 сверху вниз. Могу ли я инвертировать это? Кроме того, я хочу отразить отображаемое изображение, чтобы оно начиналось слева направо... или, если возможно, чтобы оси отображались справа налево.

Ответы

Ответ 1

Чтобы изменить ось, вы можете установить 'XDir' или 'YDir' свойство текущих осей до 'reverse':

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

Ответ 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.

И теперь у вас будет изображение оси y с диапазоном снизу вверх!

Как я могу отменить ось y, когда я использую функцию IMAGE или IMAGESC для отображения изображения в MATLAB? Другое решение из mathworks

Ответ 3

Я нашел gnovice ответ полезным, но для меня были нужны некоторые настройки. Я думаю, что следующее является более общим способом поменять метки на оси y. Просто отсортируйте номера тиков в порядке убывания и перемаркируйте.

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

Ответ 4

Я был перенаправлен здесь из дублированного вопроса: Отметки огибающей оси

То, что 'ale' хотел сделать, состояло в том, чтобы просто перевернуть направление оси Y, чтобы оно было сверху вниз. Если это единственное, что нужно, и ничего больше, я бы использовал:

axis ij