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.

Convertir datos de imagen entre clases

Descripción general de las conversiones de clases de imagen

Puede convertir y los datos de imagen a utilizando la función.uint8uint16doubleMATLAB®double Sin embargo, la conversión entre clases cambia la forma y la caja de herramientas interpreta los datos de la imagen.MATLAB Si desea que la matriz resultante se interprete correctamente como datos de imagen, debe redimensionar los datos o desplazarlos al convertirlos.

Para facilitar la conversión de clases, utilice una de estas funciones: , , , , o .im2uint8im2uint16im2int16im2singleim2double Estas funciones controlan automáticamente el reescalado y el desajuste de los datos originales de cualquier clase de imagen. Por ejemplo, este comando convierte una imagen RGB de doble precisión con datos en el rango [0,1] en una imagen RGB con datos en el rango [0,255].uint8

RGB2 = im2uint8(RGB1);

Pérdida de información en conversiones

Cuando se convierte en una clase que utiliza menos bits para representar números, generalmente se pierde parte de la información de la imagen. Por ejemplo, una imagen en escala de grises es capaz de almacenar hasta 65.536 tonos distintos de gris, pero una imagen en escala de grises solo puede almacenar 256 tonos distintos de gris.uint16uint8 Al convertir una imagen en escala de grises en una imagen en escala de grises, los tonos grises de la imagen original.uint16uint8im2uint8cuantifica En otras palabras, todos los valores de 0 a 127 en la imagen original se convierten en 0 en la imagen, los valores de 128 a 385 se convierten en 1, y así sucesivamente.uint8

Conversión de imágenes indexadas

No siempre es posible convertir una imagen indexada de una clase de almacenamiento a otra. En una imagen indexada, la matriz de imágenes contiene solo índices en un mapa de colores, en lugar de los propios datos de color, por lo que no es posible cuantificar los datos de color durante la conversión.

Por ejemplo, una imagen o una imagen indizada con 300 colores no se puede convertir a , porque las matrices tienen solo 256 valores distintos.uint16doubleuint8uint8 Si desea realizar esta conversión, primero debe reducir el número de colores de la imagen mediante la función.imapprox Esta función realiza la cuantificación de los colores del mapa de colores para reducir el número de colores distintos en la imagen. Consulte para obtener más información.Reducir los colores de la imagen indexada usando imapprox