Programación Específica > Matlab

 TRANSFORMACION DEL NIVEL DE GRIS A COLOR

<< < (2/2)

hardoc:
Hola de nuevo, en verdad gracias por los comentarios que me han dado e seguido investigando y me he encontrado un programa donde vienen varios programas dentro de el y uno de ellos es el de pseudocolor que es lo que yo quiero hacer, el problema que tengo es que tiene una imagen ya predefinida y no puedo cambiarla para que me de con la imagen que yo quiera, por favor ayudenme se los agradeseria les dejo el programa para que lo chequen y haber si  me pueden ayudar.

Geo:
Tienes un problema de interpretación, ya tienes descrito el algoritmo pero no lo has comprendido para poder pasar a plasmarlo en un programa. De lo que se trata, es ir obteniendo cada pixel en la imagen de escala de grises y obtener una equivalencia de componentes RGB con la fórmula que se indica, basada en la tabla de correspondencias de los valores 0, 128 y 255 de intensidad en escala de grises. Como te mencioné antes, debiera haber más información sobre cómo crear la tabla de equivalencias y cómo obtener el valor del subíndice i (al menos eso esperaría). Si no, la tabla simplemente la propones, y el valor de i podría obtenerse viendo en qué intervalo cae el valor de intensidad a evaluar: i puede tomar los valores 0, 1 o 2; 0 para cuando el valor de intensidad es 0, 1 para cuando 0 < valor_intensidad <= 128 y 2 para 128 < valor_intensidad <= 255 (aclaro, esto lo estoy tratando de deducir a falta de más información que supongo deberías tener).

Una vez determinado el valor del subíndice i, puedes evaluar la fórmula tres veces, una para cada componente (R, G y B). Por ejemplo, para i = 1, R_i sería 100,   R_(i-1) = 5, G_i = 10, B_i = 20, G_(i-1) = 100, B_(i-1) = 60, g_(i-1) = g_0 = 0. En la fórmula, p será el valor de intensidad del pixel en turno, debes recorrer la imagen y evaluar para cada pixel, pasando los valores RGB obtenidos a una nueva imagen.

No es muy complicado una vez que puedes interpretar la teoría, ya está descrito el algoritmo (aunque sigo pensando que faltan algunos detalles que deberían estar en el libro en alguna página anterior), ahora debes interpretarlo y pasar a la codificación.

Espero haberte dado alguna idea y no confundirte más.

En cuanto al programa que conseguiste, no sigue el algoritmo que se describe en la documentación que tienes pero por si te es de utilidad, te comento algunas cosas:

* la porción que te interesa carga variables del archivo mandrill que viene con la instalación de MATLAB (usado para varios ejemplos), el cual contiene tres variables: X, map y caption.
* X corresponde a la imagen, pero indexada (o indizada), lo cual significa que cada valor en la matriz no es un valor correspondiente a un color, sino un número que corresponde a una posición en una matriz de colores, llamada paleta. map es la paleta de colores correspondiente a X.
* la creación de "pseudocolor" se realiza mediante la generación aleatoria de una paleta de colores, aplicada a la imagen indexada X.
* las imágenes que usan paleta de colores comúnmente son imágenes de 8 bits, las imágenes de 16, 24 y 32 bits no manejan paleta pues pueden representar sin problemas los colores que necesiten para cada valor de pixel, esto lo menciono pues seguramente la gran mayoría de imágenes que tengas a la mano serán de 24 bits. Para utilizar una imagen que tú desees y que funcione de la misma manera, deberás usar una imagen indexada o convertir alguna imagen que no use paleta.
Por último, creo que tu objetivo debería ser intentar implementar la documentación que ya tienes a la mano, no necesitas más, inténtalo y si tienes problemas con la codificación en MATLAB, para eso está este foro.

Hasta pronto y suerte con tu proyecto.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa