2010-05-19 38 views
13

Me gustaría editar los ejes en mi serie de imágenes que se muestran.¿Cómo edito los ejes de una imagen en MATLAB para invertir la dirección?

Esto es lo que mi imagen se ve como:

parabola

Como se puede ver, que va de 0 a 500, de arriba abajo. ¿Puedo invertir eso? Además, quiero duplicar la imagen que se muestra, para que comience de izquierda a derecha ... o, si es posible, para mostrar los ejes de derecha a izquierda.

Respuesta

17

Para invertir un eje, se puede establecer la propiedad 'XDir' o 'YDir' del current axes a 'reverse':

set(gca,'XDir','reverse'); %# This flips the x axis 

Tenga en cuenta que voltear un eje de esta manera voltea todo en la trama también. Esto probablemente no es lo que quieres hacer para el eje y. Es probable que sólo quieren darle la vuelta al eje y etiquetas, que se puede hacer modificando la propiedad 'YTickLabel' de la siguiente manera:

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

¡Gracias, esto funciona perfectamente! ¡Gracias por agregar comentarios para que pueda entender cómo funciona el código! - Una pregunta adicional, ¿puedo cambiar los valores del eje x/eje y? – NLed

+0

@ZaZu: Puede cambiar los valores del eje cambiando las propiedades ''XTick'' y' 'YTick'' de los ejes. Si las propiedades '' XTickLabelMode'' y ''YTickLabelMode'' están configuradas en''autom'' (el valor predeterminado, cuando no ha modificado las etiquetas), las etiquetas se actualizarán automáticamente después de cambiar los valores de las marcas. De lo contrario, tendrá que actualizar las etiquetas usted mismo. – gnovice

+0

Gracias, simplemente increíble :) – NLed

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 chillido dee doo la imagen ahora tienen un eje y con el ¡van de abajo hacia arriba!

¿Cómo puedo invertir el eje y cuando uso la función IMAGE o IMAGESC para mostrar una imagen en MATLAB?Another solution from mathworks

2

Encontré la respuesta de gnovice útil, pero necesitaba algunos ajustes para mí. Creo que la siguiente es una forma más general de invertir las etiquetas en el eje y. Simplemente ordena los números y tick en orden descendente y vuelve a etiquetar.

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

Más rápido y más fácil, creo: 'image (Im); conjunto (gca, 'YDir', 'normal') ' –

0

fui redirigido aquí desde una pregunta duplicado: Flipping axis ticks

Lo 'ale' quería hacer sólo había que voltear la dirección del eje y ser de arriba hacia abajo. Si eso es lo único que se necesita y nada más, usaría:

axis ij 
Cuestiones relacionadas