• Viernes 1 de Noviembre de 2024, 15:31

Autor Tema:  convertir valor d 1 pixel d una imagen d 256 colors a 16bits  (Leído 1027 veces)

milemilte

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
convertir valor d 1 pixel d una imagen d 256 colors a 16bits
« en: Jueves 12 de Febrero de 2009, 17:12 »
0
Hola,
Hace poco que estoy trabajando con matlab y les agradeceria si podrían ayudarme.
1- Tengo una imagen original de 16 bits, que por lo general se encuentra entre [-1500,1500].
2- Esta iamgen la convierto a una imagen de 256 colores mediante la funcion im2Uint8.
3- La imagen en 256 colores se utiliza en una función que me devuelve 3 valores por ejemplo [32,64,128].
4- Ahora estos valores se deben reescalar a los valores de la imagen original.
He probado la funcion typecast(uint8(32),'int16'), pero me devuelve exactamente el mismo valor =>32.
y sucede que si los valores devueltos por la funcion son los correctos, deberian estar por ejemplo en el rango (16 bits) de [-300, -5, 100].

Espero haberme explicado bien.
Muchas gracias.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: convertir valor d 1 pixel d una imagen d 256 colors a 16bits
« Respuesta #1 en: Domingo 22 de Febrero de 2009, 07:34 »
0
¿Podrías aclarar un poco?
¿Tienes imágenes a color de 16 bits? Es decir, un pixel de la imagen se representa por 16 bits ¿o se trata de imágenes a color en las que cada componente de sus pixeles se representa con enteros de 16 bits?

Si se trata de lo segundo, y convertiste de 16 bits a 8, para reescalar en sentido inverso usa una regla de tres:

2^16 - 2^8
   x   - uint8

donde x = ( uint8 * 2^16 ) / 2^8
La imaginación es el límite.
Hardware & Software | Mexchip