martes, 11 de septiembre de 2012

Procesamiento digital de imágenes

hace unas semanas empecé un curso de procesamiento de digital (PDI) de imágenes y parece ser bastante prometedor. antes de ver lo mas avanzado, se nos pidió la creación de unas funciones  básicas en las cuales solo con un poco de imaginación , nos podemos dar cuenta de las posibles duplicaciones futuras.

el software de trabajo es MATLAB, en donde una imagen se trata una imagen se trata como una matriz con valores, para simplificar, se comienza trabajando con imágenes monocromáticas (son aquellas en escalas de grises de 0 a 255) o binarias (blancas y negras sin grises).

primero  crearemos un fondo negro con un circulo blanco, para eso tenemos en cuenta las ecuación perimétrica de un circulo.


(X-X0)^2+(Y-Y0)^2

teniendo en cuenta la ecuación anterior (si alguno sabe como puedo publicar ecuaciones matemáticas en blogger con una estética mejor que me lo diga) es fácil ver como podemos resolver la el problemas, los pixeles que satisfagan esta ecuación  tendrán un valor de 1 y los que no se les asigna un 0.

for i=1:1:size
    for j=1:1:size
        if sqrt((i-x0))^2+(j-y0))^2)<=radius
            mat_A(i,j)=1;
        else
            mat_A(i,j)=0;
        end
    end
end


para visualizar la matriz previamente debemos aplicar un comando que nos combierte los valores a escala de grises para visualizar en una imagen.

 g=mat2gray(mat_A);
 imshow (g);

podemos modificar un poco mas condición anterior para hacer una circunferencia con un un radio interno y uno externo. otra vez pensando en la ecuación perimétrica.

R_interno^2<(X-X0)^2+(Y-Y0)^2


for i=1:1:size
    for j=1:1:size
        if ((sqrt((i-x0)^2+(j-y0)^2)<=radius_ext )&&(sqrt((i-x0)^2+(j-y0)^2)>=radius_int))
            mat_A(i,j)=1;
        else
            mat_A(i,j)=0;
        end
    end
end

si bien la función creada parece muy sencilla podemos ver que puede llegar a ser de utilidad, por ejemplo si tenes que marcar un objeto, con ingresar en la función los valores de X0 e Y0 crearemos un circulo blanco alrededor de la imagen.