Matlab - Modelacion de una superficie?

 
Vista:

Modelacion de una superficie?

Publicado por Israel (1 intervención) el 21/12/2006 11:11:54
Buenas:

Tengo una imagen RGB de una superficie gris que supuestamente debería estar iluminada de manera uniforme. Sin embargo, puesto que eso es imposible, he realizado una corrección de iluminación de la manera siguiente.

1.- En primer lugar, la imagen se pasa del formato RGB al formato HSV (tono, saturación, valor) aprovechando que al ser gris, los valores de RGB son iguales en cada pixel para los tres colores. El tipo de datos de RGB es "double".

HSV = rgb2hsv (RGB);

2.- En un campo iluminado de manera uniforme, la variable "valor" del sistema de coordenadas HSV tendría que ser uniforme, así que calculo el valor medio de la variable "valor".

Valor = HSV (:,:,3);
Valor_medio = mean(mean(Valor))
Valor medio = 0.5382

3.- Ahora puedo conseguir una matriz correctora de iluminación sin más que dividir, término a término, este valor medio por el valor de cada píxel:

Correccion_Valor = Valor medio ./ Valor;

Valor_corregido = Correccion_Valor .* Valor;

4.- Se recompone la imagen original en formato RGB con este valor corregido:

HSV = HSV (:,:,Valor_corregido);

RGB = hsv2rgb HSV

___________________________________________________________

Bien, espero que se haya entendido hasta aquí. Mi duda es que me gustaría ajustar una función que me proporcionara el valor de un pixel según sus coordenadas x e y. Es decir, ajustar un polinomio

valor = a (X) + b(Y) + c (X^2) + d (Y^2) + e

y ajustar por mínimos cuadrados. Sé el sistema de ajuste habitual por mínimos cuadrados que consiste en colocar los datos de valor en un vector columna, pero es que se trata de una imagen de 3309 x 1750 pixels!!!!

Mi pregunta es:

a.- Hay alguna forma sencilla de ajustar el término "valor" segun las cordenadas x e y?

b.- En caso de que no lo haya, hay alguna forma sencilla (un bucle o algo así) de convertir una matriz de 3309 x 1750 pixels en un vector columna de 1 x 5790750 ?

Gracias

En caso de no haber entendido exactamente lo que necesito, no dudeis en preguntar las dudas. Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder