Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

image

Mostrar imagen de matriz

Descripción

ejemplo

image(C) muestra los datos de la matriz C como una imagen. Cada elemento de C especifica el color de 1 píxel de la imagen. La imagen resultante es una cuadrícula m-by-n de píxeles donde m es el número de columnas y n es el número de filas en C . Los índices de fila y columna de los elementos determinan los centros de los píxeles correspondientes.

ejemplo

image(x,y,C) especifica la ubicación de la imagen. Utilice x y y para especificar las ubicaciones de las esquinas correspondientes a C(1,1) y C(m,n). Para especificar ambas esquinas, establezca x y y como vectores de dos elementos. Para especificar la primera esquina y dejar que image determine el otro, establezca x y y como valores escalares. La imagen se estira y orienta según corresponda.

image('CData',C) agrega la imagen a los ejes actuales sin reemplazar las tramas existentes. Esta sintaxis es la versión de bajo nivel de image(C). Para obtener más información, vea Versión de imagen de alto nivel versus de bajo nivel.

image('XData',x,'YData',y,'CData',C) especifica la ubicación de la imagen. Esta sintaxis es la versión de bajo nivel de image(x,y,C).

ejemplo

image(___,Name,Value) especifica las propiedades de la imagen mediante uno o varios argumentos de par nombre-valor. Puede especificar propiedades de imagen con cualquiera de las combinaciones de argumentos de entrada en las sintaxis anteriores.

image(ax,___) crea la imagen en los ejes especificados por ax en lugar de en los ejes actuales (gca). La opción ax puede preceder a cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores.

ejemplo

im = image(___) devuelve el objeto Image creado. Utilice im para establecer las propiedades de la imagen una vez creada. Puede especificar este resultado con cualquiera de las combinaciones de argumentos de entrada en las sintaxis anteriores. Para obtener una lista de las propiedades y descripciones de la imagen, vea Image Properties.

Ejemplos

contraer todo

Cree la matriz C. Mostrar una imagen de los datos en C. Añada un Colorbar al gráfico para mostrar el colores actual.

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(C)
colorbar

De forma predeterminada, la propiedad CDataMapping de la imagen se establece en 'direct' para que image interprete valores en C como índices en el colores. Por ejemplo, el píxel inferior derecho correspondiente al último elemento de C, 22, utiliza el color 22 del colores.

Escale los valores al rango completo del colores actual estableciendo la propiedad CDataMapping en 'scaled' al crear la imagen.

image(C,'CDataMapping','scaled')
colorbar

Como alternativa, puede utilizar la función imagesc para escalar los valores en lugar de utilizar image(C,'CDataMapping','scaled'). Por ejemplo, utilice imagesc(C).

Coloque la imagen de manera que se sitúe entre 5 y 8 en el eje xy entre 3 y 6 en el eje y.

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(x,y,C)

Observe que el píxel correspondiente a C (1, 1) está centrado sobre el punto (5, 3). El píxel correspondiente a C (3,4) se centra sobre el punto (8, 6). image coloca y orienta el resto de la imagen entre esos dos puntos.

Cree C como una matriz tridimensional de colores verdaderos. Utilice sólo colores rojos estableciendo las dos últimas páginas de la matriz en ceros.

C = zeros(3,3,3);
C(:,:,1) = [.1 .2 .3; .4 .5 .6; .7 .8 .9]
C = 
C(:,:,1) =

    0.1000    0.2000    0.3000
    0.4000    0.5000    0.6000
    0.7000    0.8000    0.9000


C(:,:,2) =

     0     0     0
     0     0     0
     0     0     0


C(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

Mostrar una imagen de los datos en C.

image(C)

Trazar una línea y, a continuación, crear una imagen en la parte superior de la línea. Devolver el objeto Image.

plot(1:3)
hold on
C = [1 2 3; 4 5 6; 7 8 9];
im = image(C);

Hacer la imagen semitransparente para que la línea se muestre a través de la imagen.

im.AlphaData = 0.5;

Lea un archivo de imagen JPEG.

C = imread('ngc6543a.jpg');

imread devuelve un arreglo de discos 650-by-600-by-3, C.

Mostrar la imagen.

image(C)

Crear una gráfica de superficie. A continuación, añada una imagen debajo de la superficie. image muestra la imagen en el plano xy.

Z = 10 + peaks;
surf(Z)
hold on 
image(Z,'CDataMapping','scaled')

Argumentos de entrada

contraer todo

Datos de color de la imagen, especificados en uno de estos formularios:

  • Vector o matriz: este formato define los datos de imagen indexados. Cada elemento de C define un color para 1 píxel de la imagen. Por ejemplo: Los elementos de C se asignan a los colores de la colores de los ejes asociados. La propiedad CDataMapping controla el método de asignación.

  • matriz tridimensional de trillizos RGB: este formato define datos de imagen de color verdaderos mediante valores de triplete RGB. Cada trío RGB define un color para 1 píxel de la imagen. Un trío RGB es un vector de tres elementos que especifica las intensidades de los componentes rojo, verde y azul del color. La primera página del array 3-D contiene los componentes rojos, la segunda página contiene los componentes verdes, y la tercera página contiene los componentes azules. Dado que la imagen utiliza colores verdaderos en lugar de colores colores, la propiedad CDataMapping no tiene ningún efecto.

    • Si C es de tipo double, entonces un valor de triplete RGB de [0 0 0] corresponde a negro y [1 1 1] corresponde a blanco.

    • Si C es un tipo entero, la imagen utiliza toda la gama de datos para determinar el color. Por ejemplo, si C es de tipo uint8, [0 0 0] corresponde a negro y [255 255 255] corresponde a blanco. Si CData es de tipo int8, [-128 -128 -128] corresponde a negro y [127 127 127] corresponde al blanco.

    • Si C es de tipo logical, [0 0 0] corresponde a negro y [1 1 1] corresponde al blanco.

En esta ilustración se muestran las dimensiones relativas de C para los dos modelos de color.

El comportamiento de los elementos NaN no está definido.

Para utilizar en su lugar la versión de bajo nivel de la función image , establezca la propiedad CData como par nombre-valor. Por ejemplo:

Conversión entre tipos de datos

Para convertir datos de imagen indexados de un tipo entero a tipo double, agregue 1. Por ejemplo, si X8 es datos de imagen indexados de tipo uint8, conviertalo a tipo double utilizando:

X64 = double(X8) + 1;

Para convertir los datos de imágenes indizadas del tipo double a un tipo entero, reste 1 y utilice round para asegurarse de que todos los valores son enteros. Por ejemplo, si X64 es datos de imagen indexados de tipo double, conviertalo a uint8 utilizando:

X8 = uint8(round(X64 - 1));

Para convertir datos de imagen de color verdadero de un tipo entero a tipo double, reescale los datos. Por ejemplo, si RGB8 es true datos de imagen de color de tipo uint8, conviertalo en double mediante:

RGB64 = double(RGB8)/255;

Para convertir datos de imagen de color verdadero del tipo double a un tipo entero, reescale los datos y utilice round para asegurarse de que todos los valores son enteros. Por ejemplo, si RGB64 es datos de imagen de tipo double, conviertalo a uint8 mediante:

RGB8 = uint8(round(RGB64*255));

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Ubicación a lo largo del eje x, especificado en uno de estos formularios:

  • Vector de dos elementos: Utilice el primer elemento como ubicación del centro de C(1,1) y el segundo elemento como ubicación del centro de C(m,n), donde [m,n] = size(C). Si C es una matriz tridimensional, m y n son las dos primeras dimensiones. Distribuya uniformemente los centros de los elementos restantes de C entre esos dos puntos.

    La anchura de cada píxel viene determinada por la expresión:

    (x(2)-x(1))/(size(C,2)-1)

    Si x(1) > x(2), la imagen se volteará a la izquierda y a la derecha.

  • Escalar (Scalar): centrar C(1,1) en esta ubicación y cada elemento siguiente una unidad aparte.

Para utilizar en su lugar la versión de bajo nivel de la función image , establezca la propiedad XData como par nombre-valor. Por ejemplo:

No se puede panorámica o zoom interactivamente fuera de los límites del eje x o los límites del eje y de una imagen, a menos que los límites ya estén establecidos fuera de los límites de la imagen. Si los límites ya están fuera del límite, no existe tal restricción. Si otros objetos (como una línea) ocupan los ejes y se extienden más allá de los límites de la imagen, se puede panorámica o zoom a los límites de los otros objetos, pero no más.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Ubicación a lo largo de y-AXIS, especificada en uno de estos formularios:

  • Vector de dos elementos: Utilice el primer elemento como ubicación del centro de C(1,1) y el segundo elemento como ubicación del centro de C(m,n), donde [m,n] = size(C). Si C es una matriz tridimensional, m y n son las dos primeras dimensiones. Distribuya uniformemente los centros de los elementos restantes de C entre esos dos puntos.

    La altura de cada píxel viene determinada por la expresión:

    (y(2)-y(1))/(size(C,1)-1)

    Si y(1) > y(2), la imagen se volteará hacia arriba hacia abajo.

  • Escalar (Scalar): centrar C(1,1) en esta ubicación y cada elemento siguiente una unidad aparte.

Para utilizar en su lugar la versión de bajo nivel de la función image , establezca la propiedad YData como par nombre-valor. Por ejemplo:

No se puede panorámica o zoom interactivamente fuera de los límites del eje x o los límites del eje y de una imagen, a menos que los límites ya estén establecidos fuera de los límites de la imagen. Si los límites ya están fuera del límite, no existe tal restricción. Si otros objetos (como una línea) ocupan los ejes y se extienden más allá de los límites de la imagen, se puede panorámica o zoom a los límites de los otros objetos, pero no más.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

(objeto): Si no se especifica un objeto Axes , image utiliza los ejes actuales.

Argumentos de par nombre-valor

Ejemplo: image([1 2 3],'AlphaData',0.5) muestra una imagen semitransparente.

Las propiedades enumeradas aquí son un subconjunto de propiedades de imagen. Para obtener una lista completa, vea Image Properties.

Método de asignación de datos de color, especificado como 'direct' o 'scaled'. Utilice esta propiedad para controlar la asignación de valores de datos de color en CData en el colores. CData debe ser un vector o una matriz que defina los colores indexados. Esta propiedad no tiene ningún efecto si CData es un array tridimensional que define los colores verdaderos.

Los métodos tienen estos efectos:

  • 'direct' : Interprete los valores como índices en el colores actual. Los valores con una parte decimal se fijan al entero inferior más cercano.

    • Si los valores son de tipo double o single, los valores de 1 o menos se asignan al primer color del colores. Valores iguales o superiores a la longitud del mapa colores al último color de la colores.

    • Si los valores son de tipo uint8, uint16, uint32, uint64, int8, int16, int32, o int64, entonces los valores de 0 o menos se asignan al primer color en el mapa de colores. Valores iguales o superiores a la longitud del mapa de colores, se asignan al último color en el mapa de colores (o hasta los límites de rango del tipo de dato).

    • Si los valores son de tipo logical, los valores de 0 se asignan al primer color de la colores y los valores del mapa de 1 al segundo color de la colores.

  • 'scaled' : Permite escalar los valores para variar entre los límites de color mínimos y máximos. La propiedad CLim de los ejes contiene los límites de color.

Datos de transparencia, especificados en uno de estos formularios:

  • Escalar (Scalar): permite utilizar una transparencia consistente en toda la imagen.

  • Array del mismo tamaño que CData : utilice un valor de transparencia diferente para cada elemento de imagen.

La propiedad AlphaDataMapping controla cómo MATLAB® interpreta los valores de transparencia de datos alfa.

Ejemplo: 0.5

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Interpretación de los valores de AlphaData , especificados como uno de estos valores:

  • 'none' : Permite interpretar los valores como valores de transparencia. Un valor de 1 o superior es completamente opaco, un valor de 0 o menos es completamente transparente, y un valor entre 0 y 1 es semitransparente.

  • 'scaled' : Permite asignar los valores a la Alphamap de la figura. Los límites alfa mínimos y máximos de los ejes determinan los valores de datos alfa que se asignan al primer y último elemento de la Alphamap, respectivamente. Por ejemplo, si los límites alfa son [3 5], los valores de datos alfa son inferiores o iguales al mapa de 3 al primer elemento del Alphamap. Los valores de datos alfa mayor o igual que 5 se asignan al último elemento de la Alphamap. La propiedad ALim de los ejes contiene los límites alfa. La propiedad Alphamap de la figura contiene el Alphamap.

  • 'direct' : Interprete los valores como índices en el Alphamap de la figura. Los valores con una parte decimal se fijan al entero inferior más cercano:

    • Si los valores son de tipo double o single, entonces los valores de 1 o menos se asignan al primer elemento del Alphamap. Valores iguales o superiores a la longitud del mapa Alphamap al último elemento del Alphamap.

    • Si los valores son de tipo entero, entonces los valores de 0 o menos se asignan al primer elemento del Alphamap. Valores iguales o superiores a la longitud del mapa Alphamap se asignan al último elemento del Alphamap (o hasta los límites del rango del tipo de dato). Los tipos de dato entero son uint8, uint16, uint32, uint64 , int8 , int16, int32 y int64.

    • Si los valores son de tipo logical, entonces los valores de 0 se asignan al primer elemento de la Alphamap y los valores de 1 mapa al segundo elemento del Alphamap.

Argumentos de salida

contraer todo

Image objeto , devuelto como escalar. Utilice im para establecer las propiedades de la imagen una vez creada. Para obtener una lista, vea Image Properties.

Más acerca de

contraer todo

Versión de imagen de alto nivel versus de bajo nivel

La función image tiene dos versiones, la versión de alto nivel y la versión de nivel bajo. Si utiliza image con 'CData' como argumento de entrada, utilizará la versión de nivel inferior. De lo contrario, está utilizando la versión de alto nivel.

La versión de alto nivel de image llama a newplot antes de trazar y establece estas propiedades de los ejes:

  • Layer a 'top'. La imagen se muestra delante de cualquier marca de garrapatas o líneas de cuadrícula.

  • YDir a 'reverse'. Los valores a lo largo del eje yaumentan de arriba hacia abajo. Para reducir los valores de arriba a abajo, establezca YDir en 'normal'. Esta configuración invierte tanto el eje ycomo la imagen.

  • View a [0 90].

La versión de bajo nivel de la función image no llama a newplot y no establece estas propiedades de los ejes.

Sugerencias

  • Para leer datos de imagen en MATLAB de archivos gráficos en varios formatos estándar, como TIFF, utilice imread. Para escribir datos de imagen de MATLAB en archivos gráficos, utilice imwrite. Las funciones imread y imwrite admiten una variedad de formatos de archivos gráficos y esquemas de compresión.

Consulte también

Funciones

Propiedades

Introducido antes de R2006a