Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

5
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.

description

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

Transcript of Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

Page 1: Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

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.

Page 2: Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

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.

Page 3: Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

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

Page 4: Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

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

Page 5: Procesamiento Digital de Imagenes Clases de Operadores en MATLAB

end imshow(imgExt)