Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROCESAMIENTO DIGITAL DE
SEALES
UNIDAD II
TEMA: PROCESAMIENTO DE IMGENES CON MATLAB
NOMBRE: ALEX TIPANTUA
Conocer los conceptos bsicos para la manipulacin de las imgenes digitales con la
ayuda de MATLAB.
FUNDAMENTO TERICO
BMP (Bitmap = Mapa de bits)
Ha sido muy utilizado porque fue desarrollado para aplicaciones Windows.
La imagen se forma mediante una parrilla de pxeles.
El formato BMP no sufre prdidas de calidad y por tanto resulta adecuado para
guardar imgenes que se desean manipular posteriormente.
Ventaja: Guarda gran cantidad de informacin de la imagen.
Inconveniente: El archivo tiene un tamao muy grande.
GIF (Graphics Interchange Format = Formato de Intercambio Grfico)
Ha sido diseado especficamente para comprimir imgenes digitales.
Reduce la paleta de colores a 256 colores como mximo (profundidad de color
de 8 bits).
Admite gamas de menor nmero de colores y esto permite optimizar el tamao
del archivo que contiene la imagen.
Ventaja: Es un formato idneo para publicar dibujos en la web.
Inconveniente: No es recomendable para fotografas de cierta calidad ni
originales ya que el color real o verdadero utiliza una paleta de ms de 256
colores.
JPG-JPEG (Joint Photographic Experts Group = Grupo de Expertos Fotogrficos
Unidos)
A diferencia del formato GIF, admite una paleta de hasta 16 millones de colores.
Es el formato ms comn junto con el GIF para publicar imgenes en la web.
La compresin JPEG puede suponer cierta prdida de calidad en la imagen. En
la mayora de los casos esta prdida se puede asumir porque permite reducir el
tamao del archivo y su visualizacin es aceptable. Es recomendable utilizar una
calidad del 60-90 % del original.
Cada vez que se modifica y guarda un archivo JPEG, se puede perder algo de su
calidad si se define cierto factor de compresin.
Las cmaras digitales suelen almacenar directamente las imgenes en formato
JPEG con mxima calidad y sin compresin.
Ventaja: Es ideal para publicar fotografas en la web siempre y cuando se
configuren adecuadamente dimensiones y compresin.
Inconveniente: Si se define un factor de compresin se pierde calidad. Por este
motivo no es recomendable para archivar originales.
TIF-TIFF (Tagged Image File Format = Formato de Archivo de Imagen
Etiquetada)
Almacena imgenes de una calidad excelente.
Utiliza cualquier profundidad de color de 1 a 32 bits.
Es el formato ideal para editar o imprimir una imagen.
Ventaja: Es ideal para archivar archivos originales.
Inconveniente: Produce archivos muy grandes.
Procesamiento Digital de Seales Pgina 2
PSD. Es el formato por defecto del editor de imgenes Adobe Photoshop y por
tanto es un formato adecuado para editar imgenes con este programa y otros
compatibles. Admite millones de colores, capas, canales.
RAW. Formato en bruto. Esto quiere decir que contiene todos los pxeles de la
imagen captada, tal y como se han tomado. Es el formato que ofrece la mayor
calidad fotogrfica y suele ser admitido por cmaras de gama media y alta
(rflex, y compactas) indicadas para fotgrafos aficionados avanzados y
profesionales.
PROCEDIEMIENTO
1. Seleccionar tres imgenes en tonos de grises en diferentes formatos.
FORMATO: PNG
FORMATO: JPG
FORMATO: BMP
Procesamiento Digital de Seales Pgina 3
Comandos a utilizarse:
Nos permite leer una imagen.
>> f = imread (img1.jpg)
La imagen a leer debe encontrarse en la carpeta de trabajo de Matlab.
Los formatos de imagen soportados por Matlab son: TIFF, JPEG, GIF, BMP, PNG,
XWD.
Matriz de una imagen
>> [M,N] = size (f)
M = nmero de filas, N = nmero de columnas
>> imshow (f, G): muestra la imagen f en pantalla donde G especifica el rango de
intensidades. Si omitimos G, se muestra la imagen con 256 niveles de gris por
defecto.
>> impixel(f,i,j): mediante este comando podemos acceder al pixel de coordenadas
(i,j) de la imagen f.
>> whos f : Nos permite ver la informacin adicional de la imagen: nombre,
tamao, bytes y clase.
>> imwrite (f, C:\ESPE\5to nivel\PROCESAMIENTO\img1.tif) : Permite
guarda la imagen f con nombre imagen2.tif en C:\imagenes.
CODIFICACIN EN MATLAB:
clc
f=imread('img1.png');
g=imread('img2.jpg');
h=imread('img3.bmp');
subplot(2,2,1); imshow(f)
title('Imagen DH1')
subplot(2,2,2); imshow(g)
title('Imagen DH2')
subplot(2,2,3.5); imshow(h)
title('Imagen DH3')
impixel(f,4,4)
impixel(h,10,20)
whos f
whos g
whos h
imwrite(f,'D:\ESPE\Niveles\5to\PROCESAMIENTO\dh1.bmp');
imwrite(h,'D:\ESPE\Niveles\5to\PROCESAMIENTO\dh2.bmp');
f1=imread('dh1.bmp');
h1=imread('dh2.bmp');
subplot(1,2,1); imshow(f1)
title('Imagen dh1.bmp')
subplot(1,2,2); imshow(h1)
title('Imagen dh2.bmp')
[M,N]=size(f)
[M1,N1]=size(f1)
CODIFICACIN EN MATLAB:
clc
f=imread('img2.jpg');
f_R=f(:,:,1);
f_G=f(:,:,2);
f_B=f(:,:,3);
subplot(2,2,1); imshow(f)
title('DESCENSO')
subplot(2,2,2); imshow(f_R)
title('Descenso R')
subplot(2,2,3); imshow(f_G)
title('Descenso G')
subplot(2,2,4); imshow(f_B)
title('Descenso B')
[M,N]=size(f)
[MR,NR]=size(f_R)
[MG,NG]=size(f_G)
[MB,NB]=size(f_B)
Caractersticas de la imagen:
Mediante el comando whos x nos permite ver las caractersticas de la imagen el
nombre y sus respectivos atributos.
Procesamiento Digital de Seales Pgina 6
CODIFICACIN EN MATLAB:
clc
f=imread('Lucas.jpg');
f_R=f(:,:,1);
f_G=f(:,:,2);
f_B=f(:,:,3);
subplot(2,2,1); imshow(f)
title('MI PERRITO LUCAS')
subplot(2,2,2); imshow(f_R)
title('Lucas R')
subplot(2,2,3); imshow(f_G)
title('Lucas G')
subplot(2,2,4); imshow(f_B)
title('Lucas B')
%**********Matriz**************
[M,N]=size(f)
[MR,NR]=size(f_R)
[MG,NG]=size(f_G)
[MB,NB]=size(f_B)
El tipo de dato matriz, que contendr una imagen puede ser de varios tipos (segn el
tipo de dato de cada pixel):
-double: Doble precisin, nmeros en punto flotante que varan en un rango
aproximado de -10308 a 10308 (8 bytes por elemento)
- uint8: Enteros de 8 bits en el rango de [0,255] (1 byte por elemento)
- uint16: Enteros de 16 bits en el rango de [0, 65535] (2 bytes por elemento)
- uint32: Enteros de 32 bits en el rango de [0, 4294967295] (4 bytes por elemento)
- int8: Enteros de 8 bits en el rango de [-128, 127] (1 byte por elemento)
- int16: Enteros de 16 bits en el rango de [-32768, 32767] (2 bytes por elemento)
- int32: Enteros de 32 bits en el rango de [-2147483648,2147483647] (4 bytes por
elemento)
- logical: Los valores son 0 1 (1 bit por elemento)
Procesamiento Digital de Seales Pgina 8
CODIFICACIN EN MATLAB:
clc
f=imread('img1.png');
g2=rgb2gray(f);
subplot(1,2,1);
imshow(f);title('Imagen RGB');
subplot(1,2,2);
imshow(g2);title('Imagen Escala Gris');
CODIFICACIN EN MATLAB:
clc
f=imread('img1.png');
g2=gray2ind(f);
subplot(1,2,1);
imshow(f);title('Imagen GRIS');
subplot(1,2,2);
imshow(g2);title('Imagen INDEXADA');
CODIFICACIN EN MATLAB:
clc
f=imread('img3.bmp');
g2=im2bw(f);
ro=imrotate(g2, 45);
subplot(1,2,1);
imshow(f);title('Imagen GRIS');
subplot(1,2,2);
imshow(ro);title('Imagen Rotada-Binaria');
COMENTARIO
Mediante estos comandos disponibles en MATLAB podemos realizar varios cambios en
tipo de imagen que se desee, existen varios tipos de datos para algunos de ellos
im2bw(Nos permite convertir a una imagen binaria), gray2ind, etc. Esto nos
permite dar una mejor resolucin, reflejados y varias funciones en s nos permite
mejorar la resolucin de una imagen cuando sea necesario.
BLANCA
Procesamiento Digital de Seales Pgina 10
Formato .tiff:
Formato .bmp:
CODIFICACIN EN MATLAB:
for i=1:100
for j=1:100
F(i,j)=1;
end
end
imshow(F); title('Imagen Blanca');
NEGRA
Formato .bmp
Formato .png
CODIFICACIN EN MATLAB:
for i=1:100
for j=1:100
F(i,j)=0;
end
end
imshow(F); title('Imagen Negra');
Formato .tiff
Formato .jpg
CODIFICACIN EN MATLAB:
clear all
k=5;
for i=1:k:100
a=mod(i,2);
b=0;
while(b<k)
for j=1:100
if(a==0)
F(i+b,j)=1;
else
F(i+b,j)=0;
end
end
b=b+1;
end
end
imshow(F); title('Franjas Negras Horizontales');
Formato .png
CODIFICACIN EN MATLAB:
clear all
k=7;
for i=1:100
for j=1:k:100
a=mod(j,2);
b=0;
while(b<k)
if(a==0)
F(i,j+b)=1;
else
F(i,j+b)=0;
end
b=b+1;
Formato .bmp
end
end
end
imshow(F); title('Franjas Negras Verticales');
TABLERO DE AJEDREZ
Formato .bmp
Formato .tiff
CODIFICACIN EN MATLAB:
%******GENERACIN PARA EL TABLERO DE AJEDREZ*********
clear all
x=9;
y=9;
for i=1:x:100
z=mod(i,2);
k=0;
while(k<x)
for j=1:y:100
b=mod(j,2);
b=0;
while(b<y)
if(b==0)
if(z==0)
F(i+k,j+b)=1;
else
F(i+k,j+b)=0;
end
else
if(z==0)
F(i+k,j+b)=0;
else
F(i+k,j+b)=1;
end
end
b=b+1;
end
end
k=k+1;
end
end
imshow(F); title('TABLERO DE AJEDREZ');
BLANCA
Procesamiento Digital de Seales Pgina 13
Formato .tiff:
CODIFICACIN EN MATLAB:
Formato .bmp:
for i=1:100
for j=1:100
f(i,j)=0.5;
end
end
imshow(f);title('Imagen Blanca');
NEGRA
Formato .bmp
CODIFICACIN EN MATLAB:
Formato .tiff
for i=1:100
for j=1:100
f(i,j)=0.2;
end
end
imshow(f);title('Imagen Negra');
Formato .tiff
CODIFICACIN EN MATLAB:
clear all
k=9;
for i=1:k:100
Formato .jpg
z=mod(i,2);
b=0;
while(b<k)
for j=1:100
if(z==0)
F(i+b,j)=.7;
else
F(i+b,j)=.4;
end
end
b=b+1;
end
end
imshow(F);title('Franjas N Horizontales');
Formato .png
CODIFICACIN EN MATLAB:
clear all
k=5;
for i=1:100
for j=1:k:100
z=mod(j,2);
b=0;
while(b<k)
if(z==0)
F(i,j+b)=.9;
else
F(i,j+b)=.5;
end
b=b+1;
end
end
end
imshow(F);title('Franjas N Verticales');
TABLERO DE AJEDREZ
Formato .bmp
Formato .tiff
CODIFICACIN EN MATLAB:
Formato .jpg
clear all
x=5;
y=5;
for i=1:x:100
z=mod(i,2);
w=0;
while(w<x)
for j=1:y:100
q=mod(j,2);
ctn=0;
while(ctn<y)
if(q==0)
if(z==0)
F(i+w,j+ctn)=.5;
else
F(i+w,j+ctn)=.3;
end
else
if(z==0)
F(i+w,j+ctn)=.3;
else
F(i+w,j+ctn)=.5;
end
end
ctn=ctn+1;
end
end
w=w+1;
end
end
imshow(F);title('AJEDREZ GRIS');
CONCLUSIONES
Mediante el MATLAB pudimos manipular las imgenes generar clases de
imgenes cambiar sus caractersticas y en si realizar varias aplicaciones
Procesamiento Digital de Seales Pgina 16