Procesamiento Digital de Imagenes Clases de Operadores en MATLAB
-
Upload
joseluismoralesinonan -
Category
Documents
-
view
50 -
download
0
description
Transcript of 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.
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)