Sei sulla pagina 1di 17

DEPARTAMENTO DE ELCTRICA Y ELECTRNICA

CARRERA DE INGENIERIA EN ELECTRNICA E


INSTRUMENTACIN

PROCESAMIENTO DIGITAL DE
SEALES
UNIDAD II
TEMA: PROCESAMIENTO DE IMGENES CON MATLAB
NOMBRE: ALEX TIPANTUA

FECHA DE ENTREGA: 11/06/2015


OBJETIVOS:
Procesamiento Digital de Seales Pgina 1

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

PNG (Portable Network Graphic = Grfico portable para la red)


Es un formato de reciente difusin alternativo al GIF.
Tiene una tasa de compresin superior al formato GIF (+10%)
Admite la posibilidad de emplear un nmero de colores superior a los 256 que
impone el GIF.
Debido a su reciente aparicin slo es soportado en navegadores modernos
como IE 4 o superior.

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

2. Cargarlas y visualizarlas como imagen y como matriz; indicar como vara


los valores de los elementos de la matriz y sus caractersticas y grabarlas
con otro nombre.

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.

Cargadas y se puede visualizar como imagen


Procesamiento Digital de Seales Pgina 4

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)

Como matriz # de filas y columnas:


Procesamiento Digital de Seales Pgina 5

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

Grabarla con otro nombre:


Para grabarla con otro nombre utilizamos imwrite esto nos permite escribir a la
imagen con otro nombre y con otro formato.
imwrite(f,'D:\ESPE\Niveles\5to\PROCESAMIENTO\dh1.bmp');
imwrite(g,'D:\ESPE\Niveles\5to\PROCESAMIENTO\dh2.bmp');
imwrite(h,'D:\ESPE\Niveles\5to\PROCESAMIENTO\dh3.bmp');

Variacin de una matriz

Valores variados de la matriz

Procesamiento Digital de Seales Pgina 7

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)

3. Clases de datos de la matriz de una imagen.

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

Conversin entre tipos de datos


Para ciertas operaciones es necesario convertir una imagen de su tipo original a otro
tipo de imagen que facilite su procesamiento. Algunos mtodos:

4. Convertir las imgenes en diferentes tipos de clases y visualizarlas,


comentar sobre este punto.
Conversin mediante el comando rgb2gray() este comando crea una imagen de
intensidad en escala de gris a partir de una imagen RGB.

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');

Conversin mediante el comando gray2ind () este comando crea una imagen de


indexada a partir de una imagen en escala grises.

Procesamiento Digital de Seales Pgina 9

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');

Conversin mediante el comando im2bw () y imrotate(x,m) estos comando crea


una imagen binaria a partir de una imagen en escala grises y la rotamos 45.

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.

5. Generar imagines blanco y negro de 100x100 en dos formatos cada una.

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');

BLANCA CON FRANJAS NEGRAS HORIZONTALES

Procesamiento Digital de Seales Pgina 11

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');

BLANCA CON FRANJAS NEGRAS VERTICALES

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;

Procesamiento Digital de Seales Pgina 12

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');

6. Las anteriores pero en dos tonos de gris.

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');

BLANCA CON FRANJAS NEGRAS HORIZONTALES

Formato .tiff
CODIFICACIN EN MATLAB:
clear all
k=9;
for i=1:k:100

Procesamiento Digital de Seales Pgina 14

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');

BLANCA CON FRANJAS NEGRAS VERTICALES

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

Procesamiento Digital de Seales Pgina 15

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

hacia una imagen mediante comandos establecidos por matlab para el


procesamiento de imgenes.
En si el MATLAB es una herramienta muy til para realizar ejercicios o
aplicaciones en lo que es el procesamiento de imgenes.
REOMENDACIONES
Necesario tener conocimiento acerca de la herramienta de MATLAB e
investigar acerca de los comandos necesarios a utilizarse para el
procesamiento de imgenes para poder realizar esta prctica.
BIBLIOGRAFA:
Disponible en: http://asignatura.us.es/imagendigital/Matlab_PID_1314.pdf
Disponible en:
http://www.elai.upm.es/webantigua/spain/Asignaturas/MIP_VisionArtificial/
PracticasVA/prac1VA_%20MIP.pdf
Disponible en:
http://www.unioviedo.es/compnum/laboratorios_web/laborat03_intro_image
n/laborat03.html

Procesamiento Digital de Seales Pgina 17

Potrebbero piacerti anche