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 clase de imagen

Puede convertir y datos de imagen en el uso de 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 volver a escalar o desfasar los datos al convertirlo.

Para facilitar la conversión de clases, utilice una de estas funciones:,,,, o.im2uint8im2uint16im2int16im2singleim2double Estas funciones controlan automáticamente la reescalado y la compensación 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 intervalo [0,1] en una imagen RGB con datos en el intervalo [0255].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 tonalidades distintas de gris, pero una imagen en escala de grises puede almacenar solo 256 tonalidades distintas 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.uint16uint8im2uint8quantizes 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

Convertir 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 solo contiene í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 indexada o con 300 colores no se puede convertir en, 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 utilizando la función.imapprox Esta función realiza la cuantización de los colores en el colormap, para reducir el número de colores distintos en la imagen. Consulte para obtener más información.Reduzca los colores de la imagen indexada con imapprox