procesamiento digital de imagenes clases de operadores en matlab

Post on 05-Feb-2016

50 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Desarrollo de los diferentes operadores básicos aplicados en el tratamiento de imagenes utilizando MATLAB 2014.

TRANSCRIPT

Jueves, 18 de junio de 2015

Desarrollado por:

JOSE LUIS MORALES INOÑAN

Tema:

Clase de operadores en el tratamiento BASICO de imágenes con MATLAB 2014.

“Agradecer no cuesta nada” no se limiten en investigar.

Editor de MATLAB:

%Imagen Original, convertida a una imagen en grises, imagen a Binario.

%Por favor MODIFICAR LA IMAGEN A EMPLEAR. "f=imread('XXX.JPG')"

%La imagen debe estar contenida en la carpeta original donde se ejecutara el programa:

%Ejemplo para un archivo MATLAB “.m “:C:\Users\Jose Morales Inoñan\Documents\MATLAB

%Esta dirección esta predefinida el archivo de MATLAB al ser instado. f=imread('3.jpg'); g=rgb2gray(f); %h=gray2ind(f); i=im2bw(f); %j=rgb2ind(f); subplot(2,2,1); imshow(g) %subplot(2,2,2); imshow(h) subplot(2,2,3); imshow(i) %subplot(2,2,4); imshow(j)

%% Clases de operadores básicos en el tratamiento de imágenes. img = imread('3.jpg' ); % Asigna una imagen a una variable o array. imshow(img) % Visualiza la imagen de entrada "P". imgR=img(:,:,1); % para extraer un valor de color rojo. imgG=img(:,:,2); % para extraer un valor de color verde.

imgB=img(:,:,3); % para extraer un valor de color azul. subplot(2,2,1);imshow(img) % imagen original en una posición. title('Imagen original'); % Texto de la imagen Original. subplot(2,2,2);imshow(imgR) % Imagen en rojo en una posición. title('Imagen en ROJO'); % Texto de la imagen Rojo. subplot(2,2,3);imshow(imgG) % Imagen en verde en una posición. title('Imagen en VERDE'); % Texto de la imagen Verde. subplot(2,2,4);imshow(imgB) % Imagen en azul en una posición. title('Imagen en AZUL'); % Texto de la imagen Azul.

%% Conversión de la imagen de entrada a escala de grises. imgGr=rgb2gray(img); % Comando en Matlab para transformar de imag color a grises. imshow(imgGr) % Visualiza la imagen (gris). title('Imagen en ESCALA DE GRISES');

%% Conversión de la imagen de entrada a binario. imgBi=im2bw(imgGr,80/255); % Comando en Matlab para convertir a binario( blanco y negro ). imshow(imgBi) % Visualiza la imagen (binario). % Umbral normalizado 80/255=0.313 % ..0/255=0, 100/255=0.5, 255/255=1 % Analiza la imagen para aplicar, % eliminar lo que no se desea.

%% Histograma de una imagen en escala de grises. imhist(imgGr) % Para histograma, en imagen a color 3 histograma, aqui solo una por ser gris.

%% Operador Umbral. % Se puede tener binarizacion de imagen. [fil,col]=size(imgGr) % Recorre pixel por pixel filas,columnas de la imagen en gris utilizada

(podemos usar una en color). for j=1:fil % Recorre filas. for i= 1:col % Recorre columnas. if (imgGr(j,i)>80) % Se asigna P1=80 ver parametros del operador umbral,(picel es mayor). imgBin(j,i)=255; % Hacer P>=P1 en alto Q= 255, imagen de salida va a ser 255. else % De lo contrario.

imgBin(j,i)=0 ; % P<=P1 hacerse = 0, imagen de salida Q=0. end % Finaliza el bucle IF. end % Finaliza el bucle FOR. end % Finaliza el bucle FOR. imshow(imgBin) % Visualiza el operador Umbral (imgBin= Binarización).

%% Operador Inverso o Negativo. [fil,col]=size(imgGr) for j=1:fil for i= 1:col imgNg(j,i)=255 - imgGr(j,i); % 255 menos la variable P=imagen de entrada. Se invierte la recta (ver

grafico del operador en el libro). end end imshow(imgNg)

%% Operador Intervalo de Umbral Binario. [fil,col]=size(imgGr) P1=80,P2=200 % Parametros del operador. Ver grafica del operador en el libro. for j=1:fil for i= 1:col if (imgGr(j,i)<P1 | imgGr(j,i)>P2) % Para P<P1 ó P>P2 hacer imgUB(j,i)=255; % Que la imagen de salida sea 255, Q=255. else % De lo contrario. imgUB(j,i)=0 ; % 0, para P1<P<P2 se hace negro ("0") en ese parametro. end end end imshow(imgUB)

%% Operador Umbral de Escala de Grises. [fil,col]=size(imgGr) P1=80,P2=200 for j=1:fil for i= 1:col

if (imgGr(j,i)<P1 | imgGr(j,i)>P2) imgUEG(j,i)=255; % Q=255, la salida va a ser 255 else % De lo contrario. imgUEG(j,i)=imgGr(j,i) ; % Q = P, ó P1<P<P2. La salida de imagen Q va hacer igual a la imagen de

entrada. end end end imshow(imgUEG)

%% Operador Umbral de Escala de Grises Invertido. [fil,col]=size(imgGr) P1=80,P2=200 for j=1:fil for i= 1:col if (imgGr(j,i)<P1 | imgGr(j,i)>P2) imgUEGN(j,i)=255; % Q=255, la salida va a ser 255 else % De lo contrario. imgUEGN(j,i)=255-imgGr(j,i) ; % Q = 255-P, ó P1<P<P2. En esa tram la salida de imagen Q va hacer igual

invertida a la imagen de entrada P. end end end imshow(imgUEGN)

%% Operador Extensión. [fil,col]=size(imgGr) P1=80,P2=200 for j=1:fil for i= 1:col if (imgGr(j,i)<P1 | imgGr(j,i)>P2) imgExt(j,i)=0; else imgExt(j,i)=((imgGr(j,i)-P1)*(255/(P2-P1))); % 0 para P<=P1 o P>=P2 %q=(p-p1)255/(p2-p1) end end

end imshow(imgExt)

top related