SlideShare una empresa de Scribd logo
1
PROCESAMIENTO DE IMÁGENES Y VISION ARTIFICIAL
LABORATORIO No. 2
HISTOGRAMA, BRILLO Y CONTRASTE, CORRECCION GAMMA, DILATACION,
EROSION, APERTURA Y CERRADURA BINARIA Y GRIS, LLENADO Y DETECCION DE
REGIONES
Prof. Mg. Ing. José C. Benítez P.
INDICACIONES:
- Si en el Informe del Laboratorio o en los scripts de Matlab se encuentra un ejercicio
copiado o parcialmente copiado la nota del Laboratorio será CERO.
- Los laboratorios presentados fuera del plazo establecido tendrán nota NS.
OBJETIVO:
Hallar el umbral de una imagen.
Binarizar una imagen.
Realizar el zoom de una imagen.
Realizar las trasformaciones lógicas entre imágenes.
Manipular el histograma de una imagen a color y escala de grises.
Ecualizar una imagen mediante el histograma.
Aplicar la corrección gamma a una imagen.
Manipular el brillo y contraste de una imagen.
Dilatar y erosionar una imagen binaria y escala de grises.
Aperturar y cerrar una imagen binaria y escala de grises.
Detectar y llenar una región de una imagen.
RESUMEN TEORICO
1. TRANSFORMACIONES ESPACIALES II. Umbral, binarizado y zoom de una imagen.
Transformaciones lógicas entre imágenes.
Ver Sesión de Aprendizaje 4 del Blog del curso: utppdiyva.blogspot.com.
2. HISTOGRAMA Y ECUALIZACION, BRILLO Y CONTRASTE, CORRECCION GAMMA.
Manipulación del histograma de una imagen, ecualización mediante el histograma,
aplicación de la corrección gamma a una imagen:
Ver Sesión de Aprendizaje 5 del Blog del curso: utppdiyva.blogspot.com.
3. TRANSFORMACIONES MORFOLOGICAS I. Dilatación y erosión de imágenes
binarias.
Ver Sesión de Aprendizaje 6 del Blog del curso: utppdiyva.blogspot.com.
2
4. TRANSFORMACIONES MORFOLOGICAS II. Dilatación y erosión de imágenes
binarias. Apertura y cerradura de imágenes grises y binarias. Llenado y detección de
regiones en imágenes:
Ver Sesión de Aprendizaje 7 del Blog del curso: utppdiyva.blogspot.com.
PROCEDIMIENTO
Desarrollar las funciones y/o programas en Matlab para cada uno de los procedimientos
descritos.
1. Binarizar una imagen escala de grises por los cuatro métodos estudiados. Se
desarrollan dos métodos y quedan como tarea los otros métodos.
a. Binarización por el umbral igual al centro de la profundidad:
clc
close all
% Binarizacion de imagenes
J=imread('imageng.bmp');
%imshow(J);
I=imresize(J, [160 120]);
I=rgb2gray(I);
[x,y]=size(I);
figure, imshow(I);
% Conversion de una IG a IB
% 1. U=p/2 = 128
for i=1:x
for j=1:y
if I(i,j)<128
K(i,j)=0;
else
K(i,j)=255;
end
end
end
K=uint8(K);
figure, imshow(K);
b. Binarización por el umbral igual al punto medio de la intensidad mínima y
máxima:
% 2. U=(max-min)/2
n=min(min(I));
m=max(max(I));
u=n+(m-n)/2;
for i=1:x
for j=1:y
if I(i,j)<u
L(i,j)=0;
else
L(i,j)=255;
end
end
end
L=uint8(L);
figure, imshow(L);
2. Pasterizar una imagen escala de grises de 8 bits de profundidad a 5 niveles:
Ejemplo:
%Pasterización a 5 niveles
%0-51 %52-102 %103-153 %154-204 %205-255
for m=1:x
for n=1:y
if ig(m,n)>=0 & ig(m,n)<=51 ig(m,n)=26; end
if ig(m,n)>=52 & ig(m,n)<=102 ig(m,n)=78; end
if ig(m,n)>=103 & ig(m,n)<=153 ig(m,n)=129; end
if ig(m,n)>=154 & ig(m,n)<=204 ig(m,n)=180; end
3
if ig(m,n)>=205 & ig(m,n)<=255 ig(m,n)=231; end
end
end
figure, imshow(ig);% se muestra la imagen
3. Mostrar el histograma de una imagen escala de grises de 8 bits de profundidad.
Ejemplo:
F=zeros(1, 256);
for i=1:x
for j=1:y
v=I(i,j)
F(v+1)=F(v+1)+1;
end
end
figure, stem(F);
% verificando la cantidad de pixeles de la imagen
s=0;
for z=1:256
s=s+F(z)
end
4. Ecualizar una imagen escala de grises de 8 bits de profundidad mediante su histograma:
Ejemplo:
% ECUALIZACION DE UNA IMAGEN
I=[52 55 61 66 70 61 64 73; ...
63 59 55 90 109 85 69 72; ...
62 59 68 113 144 104 66 73; ...
63 58 71 122 154 106 70 69; ...
67 61 68 104 126 88 68 70; ...
79 65 60 70 77 68 58 75; ...
85 71 64 59 55 61 65 83; ...
87 79 69 68 65 76 78 94]
[x,y]=size(I)
f=zeros(1, 255) % matriz de frecuencias
for i=1:x
for j=1:y
v=I(i,j)
f(v+1)=f(v+1)+1;
end
end
figure, stem(f);
figure, imhist(uint8(I),255);
cdf=zeros(1,255)
for m=1:255
for n=1: m
cdf(m)=cdf(m)+f(n)
end
end
cdfmin=min(cdf)
P=zeros(8,8)
for i=1:x
for j=1:y
v=I(i,j)
v1=round((cdf(v+1)-cdfmin)/(x*y-cdfmin)*255)
P(i,j)=v1
end
end
I2=imresize(I,[640 640])
P2=imresize(P,[640 640])
figure, imshow(uint8(I2))
figure, imshow(uint8(P2))
5. Manipular el brillo y contraste de una imagen escala de grises de 8 bits de profundidad.
Ejemplo:
% Manipulacion del brillo de una imagen escala de grises
ic=imread('rostro.bmp');
figure, imshow(ic);
ig=rgb2gray(ic);
figure, imshow(ig);
ig1=ig+50;
figure, imshow(ig1);
4
ig2=ig-50;
figure, imshow(ig2);
ig3=ig*0.5;
figure, imshow(ig3);
ig4=ig*1.5;
figure, imshow(ig4);
6. Realizar la corrección gamma a una imagen escala de grises de 8 bits de profundidad.
Ejemplo:
function gama(g)
I=imread('animalesg.bmp');
figure, imshow(I)
[x,y]=size(I)
for i=1:x
for j=1:y
I(i,j)=uint8(255*(double(I(i,j))/255)^(1/g));
end
end
figure, imshow(I)
7. Dilatación de imágenes escala de grises de 8 bits de profundidad.
Ejemplo:
% Dilatación de imagenes escala de grises
% I imagen
I=[ 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0;...
0 0 15 27 8 0 0;...
0 0 100 95 1 0 0;...
0 0 0 0 0 0 0;...
0 0 0 0 0 0 0;...
255 255 255 255 255 255 255;...
0 0 0 255 0 0 0;...
0 0 0 255 0 0 0;...
0 0 0 255 0 0 0]
figure, imshow(imresize(uint8(I),[480,480]));
% Definicion del elemento estructural
ee=strel('square', 3);
% Se aplica dilatacion
I1=imdilate(I,ee);
figure, imshow(imresize(uint8(I1),[480,480]));
I3=imread('igsg.bmp');
figure, imshow(I3);
% Definicion del elemento estructural
ee=strel('square', 30);
% Se aplica dilatacion
I4=imdilate(I3,ee);
figure, imshow(I4);
Ejemplo:
function B=dilatacion(A)
% A es la variable que contiene la imagen
figure, imshow(A);
[H W Z]=size(A);
B=zeros(H, W);
K=[1 1 1; 1 1 1; 1 1 1];
for f=(1+1):(H-1)
for c=(1+1):(W-1)
suma=0;
for ff=-1:1
for cc=-1:1
suma=suma+K(ff+2,cc+2)*A(f+ff,c+cc)/255;
end;
end;
if suma>=1
B(f,c)=255;
else
B(f,c)=0;
end;
5
end;
end;
figure, imshow(uint8(B))
8. Erosión de imágenes escala de grises de 8 bits de profundidad.
Ejemplo 1:
% Erosión de imagenes escala de grises
% I imagen
I=[ 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0;...
0 0 15 27 8 0 0;...
0 0 100 95 1 0 0;...
0 0 0 0 0 0 0;...
0 0 0 0 0 0 0;...
255 255 255 255 255 255 255;...
0 0 0 255 0 0 0;...
0 0 0 255 0 0 0;...
0 0 0 255 0 0 0]
figure, imshow(imresize(uint8(I),[480,480]));
% Definicion del elemento estructural
ee=strel('square', 3);
% Se aplica erosión
I1=imerode(I,ee);
figure, imshow(imresize(uint8(I1),[480,480]));
I3=imread('igsg.bmp');
figure, imshow(I3);
% Definicion del elemento estructural
ee=strel('square', 30);
% Se aplica erosión
I4=imerode(I3,ee);
figure, imshow(I4);
Ejemplo 2:
function B=erosion(A)
% A es la variable que contiene la imagen binaria
figure, imshow(A);
[H W Z]=size(A);
B=zeros(H, W);
K=[1 1 1; 1 1 1; 1 1 1];
for f=(1+1):(H-1)
for c=(1+1):(W-1)
suma=0;
for ff=-1:1
for cc=-1:1
suma=suma+K(ff+2,cc+2)*A(f+ff,c+cc)/255;
end;
end;
if suma==sum(sum(K))
B(f,c)=255;
else
B(f,c)=0;
end;
end;
end;
figure, imshow(uint8(B));
INFORME FINAL
El Informe de Laboratorio es un documento gráfico en lo posible y es redactado en Word con
el desarrollo del laboratorio.
Niveles de Informe:
• Primer nivel: Observaciones. Imágenes con comentarios cortos. Redactar al ir
desarrollando el laboratorio. (Requiere desarrollar el laboratorio).
6
• Segundo nivel: Conclusiones. Redactar al terminar el laboratorio. (Requiere haber
desarrollado el laboratorio).
• Tercer Nivel: Recomendaciones. (Requiere la lectura de otras fuentes).
Dentro de su Carpeta Personal del Dropbox crear una carpeta para el Laboratorio 2 con el
siguiente formato:
PDI_PaternoM_L2
Esta carpeta debe contener el Informe de Laboratorio, los códigos, las fuentes y recursos
utilizados.
Las fuentes deben conservar el nombre original de archivo y se debe agregar en su nombre
“_L2” al final.
CUESTIONARIO
Mostrar en el Informe de Laboratorio los resultados de los ejercicios del Laboratorio, los
Procedimientos y el Cuestionario.
El Informe de Laboratorio no contiene códigos, sólo las referencias a los números de línea
de los scripts.
Los ejercicios del cuestionario deben desarrollarse mediante funciones creadas por el
alumno para cada uno de los ejercicios, salvo que se trate de comparar resultados con
funciones de Matlab; en ese caso sólo mostrar resultados y describir sus observaciones y
conclusiones.
1. Crear una función para cada uno de los cuatro métodos de binarizar una imagen escala
de grises de una profundidad de 8 bits.
2. Comparar cada uno de los resultados con el resultado de la función de matlab para este
fin.
3. Crear una función para realizar el zoom a una imagen binaria utilizando la interpolación:
a. del vecino más cercano
b. bilineal
c. bicúbica
4. Comparar cada uno de los resultados con el resultado de la función de matlab para este
fin.
5. Crear una función para realizar el zoom a una imagen escala de grises utilizando la
interpolación:
a. del vecino más cercano
b. bilineal
c. bicúbica
6. Comparar cada uno de los resultados con el resultado de la función de matlab para este
fin.
7. Crear una función para realizar el zoom a una imagen a color utilizando la interpolación:
a. del vecino más cercano
b. bilineal
7
c. bicúbica
8. Comparar cada uno de los resultados con el resultado de la función de matlab para este
fin.
9. Entre una máscara de color blanco / negro y una imagen binaria realizar operaciones
lógicas. Crear una función para cada una.
a. NOT
b. OR
c. AND
10. Crear una función para realizar la composición de tres imágenes binarias mediante un
patrón.
11. Entre una máscara de color blanco / negro y una imagen escala de grises realizar
operaciones lógicas. Crear una función para cada una.
a. NOT
b. OR
c. AND
12. Crear una función para realizar la composición de tres imágenes escala de grises
mediante un patrón.
13. Entre una máscara de color blanco / negro y una imagen a color realizar operaciones
lógicas. Crear una función para cada una.
a. NOT
b. OR
c. AND
14. Crear una función para realizar la composición de tres imágenes a color mediante un
patrón.
15. Crear una función para pasterizar una imagen escala de grises de 8 bpp:
a. 4 niveles.
b. 10 niveles.
c. 20 niveles.
16. Crear una función para pasterizar una imagen a colores de 8 bpp:
a. 4 niveles.
b. 10 niveles.
c. 20 niveles.
17. Crear una función para mostrar el histograma de una imagen escala de grises de 8 bpp.
Comparar con la función de matlab para este fin.
18. Crear una función para mostrar el histograma de una imagen a color. Comparar con la
función de matlab para este fin.
19. Crear una función para manipular el brillo de una imagen escala de grises por dos
métodos. Comparar con la función de matlab para este fin.
20. Crear una función para manipular el brillo de una imagen a colores por dos métodos.
Comparar con la función de matlab para este fin.
21. Crear una función para manipular el contraste de una imagen escala de grises por cuatro
métodos de un valor umbral. Comparar con la función de matlab para este fin.
8
22. Crear una función para manipular el contraste de una imagen a colores por cuatro
métodos de un valor umbral. Comparar con la función de matlab para este fin.
23. Crear una función para manipular el contraste de una imagen escala de grises por dos
métodos de más de un valor umbral. Comparar con la función de matlab para este fin.
24. Crear una función para realizar la corrección gamma para varios valores de gamma de
una imagen. Comparar con la función de matlab para este fin.
25. Crear una función para dilatar imágenes de escala de grises de 8bpp. Comparar con la
función de matlab para este fin. Considerar tres tipos de elemento estructural:
a. Cuadrado de 3x3
b. Diamante de 3x3
c. Disco de 3x3
26. Crear una función para erosionar imágenes escala de grises de 8 bpp. Comparar con la
función de matlab para este fin. Considerar tres tipos de elemento estructural:
a. Cuadrado de 3x3
b. Diamante de 3x3
c. Disco de 3x3
27. Crear una función para dilatar imágenes binarias. Comparar con la función de matlab
para este fin. Considerar tres tipos de elemento estructural:
a. Cuadrado de 3x3
b. Diamante de 3x3
c. Disco de 3x3
28. Crear una función para erosionar imágenes binarias. Comparar con la función de matlab
para este fin. Considerar tres tipos de elemento estructural:
a. Cuadrado de 3x3
b. Diamante de 3x3
c. Disco de 3x3
29. Crear una función para aperturar imágenes binarias. Comparar con la función de matlab
para este fin.
30. Crear una función para clausurar imágenes binarias. Comparar con la función de matlab
para este fin.
31. Crear una función para detectar fronteras (bordes). Comparar con la función de matlab
para este fin.
32. Crear una función para rellenar regiones. Comparar con la función de matlab para este
fin.
En cada procedimiento cuestionario y ejercicio mostrar sus observaciones, conclusiones y
recomendaciones.
Cada línea del script de la función creada debe estar comentada.
FUNCIONES DE MATLAB:
imhist, imadjust, histeq, imdilate, strel, imerode, imopen, imclose.

Más contenido relacionado

PDF
Utp pdi_2014-2 lab2
PDF
Utp pdi_2014-2 lab2
PPT
Operaciones Morfologicas
PPT
Morfología de las imágenes Matlab
PDF
Procesamiento digital de imágenes con matlab
PDF
Operaciones morfológicas en imágenes binarias parte 1
PPT
Imagen Filtrado Espacial
DOCX
L2 s1
Utp pdi_2014-2 lab2
Utp pdi_2014-2 lab2
Operaciones Morfologicas
Morfología de las imágenes Matlab
Procesamiento digital de imágenes con matlab
Operaciones morfológicas en imágenes binarias parte 1
Imagen Filtrado Espacial
L2 s1

La actualidad más candente (20)

PDF
Utp pd_iy_va_sap10 detecciòn de bordes
PDF
Manejo basico de imagenes matlab
PDF
Utp va_sl4_procesamiento digital de imagenes con matlab iii
PDF
Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii
PDF
Tema 14 imágenes en java por gio
PPTX
Maximos y minimos
PDF
Utp va_sl2 procesamiento de imagenes con mat_lab i
PDF
Utp pdiva_lab6_procesamiento digital de imagenes con matlab iv
PPT
Funciones
TXT
Lienzo.java
PDF
Utp pdi_2015-2_ea9 filtrado espacial
PDF
PPTX
Deber graficas en matlab
DOCX
Extra clase de matemática
PDF
Utp pds_lab5 introduccion al procesamiento de imagenes con mat_lab
PPTX
Matlab graficas
PDF
65 Php. Diagramas De Sectores
PDF
II examen décimo matem
PPT
Utp pd_iy_va_sap10 detecciòn de bordes
Manejo basico de imagenes matlab
Utp va_sl4_procesamiento digital de imagenes con matlab iii
Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii
Tema 14 imágenes en java por gio
Maximos y minimos
Utp va_sl2 procesamiento de imagenes con mat_lab i
Utp pdiva_lab6_procesamiento digital de imagenes con matlab iv
Funciones
Lienzo.java
Utp pdi_2015-2_ea9 filtrado espacial
Deber graficas en matlab
Extra clase de matemática
Utp pds_lab5 introduccion al procesamiento de imagenes con mat_lab
Matlab graficas
65 Php. Diagramas De Sectores
II examen décimo matem
Publicidad

Destacado (20)

PDF
Tema1 introducción 2009v1
PPTX
La piratería power point 1
PPT
12.06. la prueba. dr. sa+¦l pe+¦a farf+ín
PDF
Ijeet 07 05_001
PPTX
Tema 2. la producción de bienes y servicios
PDF
Ul rc_cap7_el nivel de transporte en internet_
DOCX
Estrategia didáctica para el proceso enseñanza aprendizaje de la asignatura ...
DOCX
Estudio BSC para el area de Adm de un Banco
PDF
O q conquistar um homem
PDF
NON-ISOLATED SOFT SWITCHING DC-DC CONVERTER AND LOAD AT FULL RANGE OF ZVS
PDF
Primer Paquete Económico 2017 Zacatecas (6/9)
PPT
Factores de la produccion
PDF
Norma tecnica tb 2006
PDF
Comprendiendo el entorno 1
PDF
Aula 7 - Fundamentos de Custos e Métodos de Custeio
DOC
1 como se organiza un sistema productivo
PDF
1 estructura de la asignaturaespañol 3°
PPTX
1.- Infraestructura en comunicación y transporte, Cuarta Reunión Regional 201...
PPT
Medios De ComunicacióN 7ºAñO BáSico
PDF
Historia del maquillaje - siglo xx
Tema1 introducción 2009v1
La piratería power point 1
12.06. la prueba. dr. sa+¦l pe+¦a farf+ín
Ijeet 07 05_001
Tema 2. la producción de bienes y servicios
Ul rc_cap7_el nivel de transporte en internet_
Estrategia didáctica para el proceso enseñanza aprendizaje de la asignatura ...
Estudio BSC para el area de Adm de un Banco
O q conquistar um homem
NON-ISOLATED SOFT SWITCHING DC-DC CONVERTER AND LOAD AT FULL RANGE OF ZVS
Primer Paquete Económico 2017 Zacatecas (6/9)
Factores de la produccion
Norma tecnica tb 2006
Comprendiendo el entorno 1
Aula 7 - Fundamentos de Custos e Métodos de Custeio
1 como se organiza un sistema productivo
1 estructura de la asignaturaespañol 3°
1.- Infraestructura en comunicación y transporte, Cuarta Reunión Regional 201...
Medios De ComunicacióN 7ºAñO BáSico
Historia del maquillaje - siglo xx
Publicidad

Similar a Utp 2015-2_pdi_lab2 (20)

PDF
Utp 2015-2_pdi_lab2
PPTX
Clase 4
PPTX
Clase 4
DOCX
Procesamiento de imagenes
PPT
Imagen e histograma
DOCX
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
PDF
Pdiva 2012 2 balotario pc1
PDF
Procesamiento de Imágenes
PDF
Utp pdiva_lab5_procesamiento digital de imagenes con matlab iii
PDF
Utp pdiva_sl3_procesamiento digital de imagenes con matlab ii
PDF
Utp pd_iy_va_sap10 detecciòn de bordes
PDF
PImagenes_en sistemas embebidos_2_apuntes.pdf
PPTX
Diseño e implementacion.pptx
PDF
2437215 procesamiento-de-imagenes-con-matrices
PDF
Introduccion al procesamiento de imagenes con matlab
PDF
ARCHIVOS DIGITALES DE FOTOGRAFÍA Y ÁLGEBRA LINEAL
DOCX
282361940-Seguimiento-de-Objetos-de-Colores-Con-Webcam-en-Matlab.docx
DOCX
Hoja De Trabajo Mate Iv Unidad 2
DOCX
L2 s2
Utp 2015-2_pdi_lab2
Clase 4
Clase 4
Procesamiento de imagenes
Imagen e histograma
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Pdiva 2012 2 balotario pc1
Procesamiento de Imágenes
Utp pdiva_lab5_procesamiento digital de imagenes con matlab iii
Utp pdiva_sl3_procesamiento digital de imagenes con matlab ii
Utp pd_iy_va_sap10 detecciòn de bordes
PImagenes_en sistemas embebidos_2_apuntes.pdf
Diseño e implementacion.pptx
2437215 procesamiento-de-imagenes-con-matrices
Introduccion al procesamiento de imagenes con matlab
ARCHIVOS DIGITALES DE FOTOGRAFÍA Y ÁLGEBRA LINEAL
282361940-Seguimiento-de-Objetos-de-Colores-Con-Webcam-en-Matlab.docx
Hoja De Trabajo Mate Iv Unidad 2
L2 s2

Más de jcbp_peru (20)

PDF
It526 2017 1 balotario-s_ap2y3
PDF
It526 2016 2 pc4 dom
PDF
It246 2016 2 practica calificada 4
PDF
It246 2016 2 practica calificada 3
PDF
It246 2016 2 practica calificada 2
PDF
It526 2013 2 ep
PDF
It526 2016 1 ep
PDF
It526 2016 2 practica calificada 2
PDF
33012 calvo tfw-figura-paterna-2015
PDF
It246 2016 2 practica calificada 1
PDF
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
PDF
Uni fiee ci 2016 02 sesion 2 servicios inalámbricos
PDF
Uni fiee ci 2016 02 sesion 1 espectro radioelèctrico
PDF
Uni wc 2016 1 sesion 14 redes moviles 4 g
PDF
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3g
PDF
Lte whitepaper(1)
PDF
Redes moviles
PDF
Uni fiee ci sesion 12 cdma
PDF
Uni fiee ci 2016 01 sesion 11 comunicaciones moviles
PDF
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion
It526 2017 1 balotario-s_ap2y3
It526 2016 2 pc4 dom
It246 2016 2 practica calificada 4
It246 2016 2 practica calificada 3
It246 2016 2 practica calificada 2
It526 2013 2 ep
It526 2016 1 ep
It526 2016 2 practica calificada 2
33012 calvo tfw-figura-paterna-2015
It246 2016 2 practica calificada 1
Uni fiee ci 2016 02 sesion 3y4 modelos deterministicos de propagacion
Uni fiee ci 2016 02 sesion 2 servicios inalámbricos
Uni fiee ci 2016 02 sesion 1 espectro radioelèctrico
Uni wc 2016 1 sesion 14 redes moviles 4 g
Uni wc 2016 1 sesion 13 redes moviles 2 g y 3g
Lte whitepaper(1)
Redes moviles
Uni fiee ci sesion 12 cdma
Uni fiee ci 2016 01 sesion 11 comunicaciones moviles
Uni fiee ci 2016 01 sesion 10 modelos deterministicos de propagacion

Utp 2015-2_pdi_lab2

  • 1. 1 PROCESAMIENTO DE IMÁGENES Y VISION ARTIFICIAL LABORATORIO No. 2 HISTOGRAMA, BRILLO Y CONTRASTE, CORRECCION GAMMA, DILATACION, EROSION, APERTURA Y CERRADURA BINARIA Y GRIS, LLENADO Y DETECCION DE REGIONES Prof. Mg. Ing. José C. Benítez P. INDICACIONES: - Si en el Informe del Laboratorio o en los scripts de Matlab se encuentra un ejercicio copiado o parcialmente copiado la nota del Laboratorio será CERO. - Los laboratorios presentados fuera del plazo establecido tendrán nota NS. OBJETIVO: Hallar el umbral de una imagen. Binarizar una imagen. Realizar el zoom de una imagen. Realizar las trasformaciones lógicas entre imágenes. Manipular el histograma de una imagen a color y escala de grises. Ecualizar una imagen mediante el histograma. Aplicar la corrección gamma a una imagen. Manipular el brillo y contraste de una imagen. Dilatar y erosionar una imagen binaria y escala de grises. Aperturar y cerrar una imagen binaria y escala de grises. Detectar y llenar una región de una imagen. RESUMEN TEORICO 1. TRANSFORMACIONES ESPACIALES II. Umbral, binarizado y zoom de una imagen. Transformaciones lógicas entre imágenes. Ver Sesión de Aprendizaje 4 del Blog del curso: utppdiyva.blogspot.com. 2. HISTOGRAMA Y ECUALIZACION, BRILLO Y CONTRASTE, CORRECCION GAMMA. Manipulación del histograma de una imagen, ecualización mediante el histograma, aplicación de la corrección gamma a una imagen: Ver Sesión de Aprendizaje 5 del Blog del curso: utppdiyva.blogspot.com. 3. TRANSFORMACIONES MORFOLOGICAS I. Dilatación y erosión de imágenes binarias. Ver Sesión de Aprendizaje 6 del Blog del curso: utppdiyva.blogspot.com.
  • 2. 2 4. TRANSFORMACIONES MORFOLOGICAS II. Dilatación y erosión de imágenes binarias. Apertura y cerradura de imágenes grises y binarias. Llenado y detección de regiones en imágenes: Ver Sesión de Aprendizaje 7 del Blog del curso: utppdiyva.blogspot.com. PROCEDIMIENTO Desarrollar las funciones y/o programas en Matlab para cada uno de los procedimientos descritos. 1. Binarizar una imagen escala de grises por los cuatro métodos estudiados. Se desarrollan dos métodos y quedan como tarea los otros métodos. a. Binarización por el umbral igual al centro de la profundidad: clc close all % Binarizacion de imagenes J=imread('imageng.bmp'); %imshow(J); I=imresize(J, [160 120]); I=rgb2gray(I); [x,y]=size(I); figure, imshow(I); % Conversion de una IG a IB % 1. U=p/2 = 128 for i=1:x for j=1:y if I(i,j)<128 K(i,j)=0; else K(i,j)=255; end end end K=uint8(K); figure, imshow(K); b. Binarización por el umbral igual al punto medio de la intensidad mínima y máxima: % 2. U=(max-min)/2 n=min(min(I)); m=max(max(I)); u=n+(m-n)/2; for i=1:x for j=1:y if I(i,j)<u L(i,j)=0; else L(i,j)=255; end end end L=uint8(L); figure, imshow(L); 2. Pasterizar una imagen escala de grises de 8 bits de profundidad a 5 niveles: Ejemplo: %Pasterización a 5 niveles %0-51 %52-102 %103-153 %154-204 %205-255 for m=1:x for n=1:y if ig(m,n)>=0 & ig(m,n)<=51 ig(m,n)=26; end if ig(m,n)>=52 & ig(m,n)<=102 ig(m,n)=78; end if ig(m,n)>=103 & ig(m,n)<=153 ig(m,n)=129; end if ig(m,n)>=154 & ig(m,n)<=204 ig(m,n)=180; end
  • 3. 3 if ig(m,n)>=205 & ig(m,n)<=255 ig(m,n)=231; end end end figure, imshow(ig);% se muestra la imagen 3. Mostrar el histograma de una imagen escala de grises de 8 bits de profundidad. Ejemplo: F=zeros(1, 256); for i=1:x for j=1:y v=I(i,j) F(v+1)=F(v+1)+1; end end figure, stem(F); % verificando la cantidad de pixeles de la imagen s=0; for z=1:256 s=s+F(z) end 4. Ecualizar una imagen escala de grises de 8 bits de profundidad mediante su histograma: Ejemplo: % ECUALIZACION DE UNA IMAGEN I=[52 55 61 66 70 61 64 73; ... 63 59 55 90 109 85 69 72; ... 62 59 68 113 144 104 66 73; ... 63 58 71 122 154 106 70 69; ... 67 61 68 104 126 88 68 70; ... 79 65 60 70 77 68 58 75; ... 85 71 64 59 55 61 65 83; ... 87 79 69 68 65 76 78 94] [x,y]=size(I) f=zeros(1, 255) % matriz de frecuencias for i=1:x for j=1:y v=I(i,j) f(v+1)=f(v+1)+1; end end figure, stem(f); figure, imhist(uint8(I),255); cdf=zeros(1,255) for m=1:255 for n=1: m cdf(m)=cdf(m)+f(n) end end cdfmin=min(cdf) P=zeros(8,8) for i=1:x for j=1:y v=I(i,j) v1=round((cdf(v+1)-cdfmin)/(x*y-cdfmin)*255) P(i,j)=v1 end end I2=imresize(I,[640 640]) P2=imresize(P,[640 640]) figure, imshow(uint8(I2)) figure, imshow(uint8(P2)) 5. Manipular el brillo y contraste de una imagen escala de grises de 8 bits de profundidad. Ejemplo: % Manipulacion del brillo de una imagen escala de grises ic=imread('rostro.bmp'); figure, imshow(ic); ig=rgb2gray(ic); figure, imshow(ig); ig1=ig+50; figure, imshow(ig1);
  • 4. 4 ig2=ig-50; figure, imshow(ig2); ig3=ig*0.5; figure, imshow(ig3); ig4=ig*1.5; figure, imshow(ig4); 6. Realizar la corrección gamma a una imagen escala de grises de 8 bits de profundidad. Ejemplo: function gama(g) I=imread('animalesg.bmp'); figure, imshow(I) [x,y]=size(I) for i=1:x for j=1:y I(i,j)=uint8(255*(double(I(i,j))/255)^(1/g)); end end figure, imshow(I) 7. Dilatación de imágenes escala de grises de 8 bits de profundidad. Ejemplo: % Dilatación de imagenes escala de grises % I imagen I=[ 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0;... 0 0 15 27 8 0 0;... 0 0 100 95 1 0 0;... 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0;... 255 255 255 255 255 255 255;... 0 0 0 255 0 0 0;... 0 0 0 255 0 0 0;... 0 0 0 255 0 0 0] figure, imshow(imresize(uint8(I),[480,480])); % Definicion del elemento estructural ee=strel('square', 3); % Se aplica dilatacion I1=imdilate(I,ee); figure, imshow(imresize(uint8(I1),[480,480])); I3=imread('igsg.bmp'); figure, imshow(I3); % Definicion del elemento estructural ee=strel('square', 30); % Se aplica dilatacion I4=imdilate(I3,ee); figure, imshow(I4); Ejemplo: function B=dilatacion(A) % A es la variable que contiene la imagen figure, imshow(A); [H W Z]=size(A); B=zeros(H, W); K=[1 1 1; 1 1 1; 1 1 1]; for f=(1+1):(H-1) for c=(1+1):(W-1) suma=0; for ff=-1:1 for cc=-1:1 suma=suma+K(ff+2,cc+2)*A(f+ff,c+cc)/255; end; end; if suma>=1 B(f,c)=255; else B(f,c)=0; end;
  • 5. 5 end; end; figure, imshow(uint8(B)) 8. Erosión de imágenes escala de grises de 8 bits de profundidad. Ejemplo 1: % Erosión de imagenes escala de grises % I imagen I=[ 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0;... 0 0 15 27 8 0 0;... 0 0 100 95 1 0 0;... 0 0 0 0 0 0 0;... 0 0 0 0 0 0 0;... 255 255 255 255 255 255 255;... 0 0 0 255 0 0 0;... 0 0 0 255 0 0 0;... 0 0 0 255 0 0 0] figure, imshow(imresize(uint8(I),[480,480])); % Definicion del elemento estructural ee=strel('square', 3); % Se aplica erosión I1=imerode(I,ee); figure, imshow(imresize(uint8(I1),[480,480])); I3=imread('igsg.bmp'); figure, imshow(I3); % Definicion del elemento estructural ee=strel('square', 30); % Se aplica erosión I4=imerode(I3,ee); figure, imshow(I4); Ejemplo 2: function B=erosion(A) % A es la variable que contiene la imagen binaria figure, imshow(A); [H W Z]=size(A); B=zeros(H, W); K=[1 1 1; 1 1 1; 1 1 1]; for f=(1+1):(H-1) for c=(1+1):(W-1) suma=0; for ff=-1:1 for cc=-1:1 suma=suma+K(ff+2,cc+2)*A(f+ff,c+cc)/255; end; end; if suma==sum(sum(K)) B(f,c)=255; else B(f,c)=0; end; end; end; figure, imshow(uint8(B)); INFORME FINAL El Informe de Laboratorio es un documento gráfico en lo posible y es redactado en Word con el desarrollo del laboratorio. Niveles de Informe: • Primer nivel: Observaciones. Imágenes con comentarios cortos. Redactar al ir desarrollando el laboratorio. (Requiere desarrollar el laboratorio).
  • 6. 6 • Segundo nivel: Conclusiones. Redactar al terminar el laboratorio. (Requiere haber desarrollado el laboratorio). • Tercer Nivel: Recomendaciones. (Requiere la lectura de otras fuentes). Dentro de su Carpeta Personal del Dropbox crear una carpeta para el Laboratorio 2 con el siguiente formato: PDI_PaternoM_L2 Esta carpeta debe contener el Informe de Laboratorio, los códigos, las fuentes y recursos utilizados. Las fuentes deben conservar el nombre original de archivo y se debe agregar en su nombre “_L2” al final. CUESTIONARIO Mostrar en el Informe de Laboratorio los resultados de los ejercicios del Laboratorio, los Procedimientos y el Cuestionario. El Informe de Laboratorio no contiene códigos, sólo las referencias a los números de línea de los scripts. Los ejercicios del cuestionario deben desarrollarse mediante funciones creadas por el alumno para cada uno de los ejercicios, salvo que se trate de comparar resultados con funciones de Matlab; en ese caso sólo mostrar resultados y describir sus observaciones y conclusiones. 1. Crear una función para cada uno de los cuatro métodos de binarizar una imagen escala de grises de una profundidad de 8 bits. 2. Comparar cada uno de los resultados con el resultado de la función de matlab para este fin. 3. Crear una función para realizar el zoom a una imagen binaria utilizando la interpolación: a. del vecino más cercano b. bilineal c. bicúbica 4. Comparar cada uno de los resultados con el resultado de la función de matlab para este fin. 5. Crear una función para realizar el zoom a una imagen escala de grises utilizando la interpolación: a. del vecino más cercano b. bilineal c. bicúbica 6. Comparar cada uno de los resultados con el resultado de la función de matlab para este fin. 7. Crear una función para realizar el zoom a una imagen a color utilizando la interpolación: a. del vecino más cercano b. bilineal
  • 7. 7 c. bicúbica 8. Comparar cada uno de los resultados con el resultado de la función de matlab para este fin. 9. Entre una máscara de color blanco / negro y una imagen binaria realizar operaciones lógicas. Crear una función para cada una. a. NOT b. OR c. AND 10. Crear una función para realizar la composición de tres imágenes binarias mediante un patrón. 11. Entre una máscara de color blanco / negro y una imagen escala de grises realizar operaciones lógicas. Crear una función para cada una. a. NOT b. OR c. AND 12. Crear una función para realizar la composición de tres imágenes escala de grises mediante un patrón. 13. Entre una máscara de color blanco / negro y una imagen a color realizar operaciones lógicas. Crear una función para cada una. a. NOT b. OR c. AND 14. Crear una función para realizar la composición de tres imágenes a color mediante un patrón. 15. Crear una función para pasterizar una imagen escala de grises de 8 bpp: a. 4 niveles. b. 10 niveles. c. 20 niveles. 16. Crear una función para pasterizar una imagen a colores de 8 bpp: a. 4 niveles. b. 10 niveles. c. 20 niveles. 17. Crear una función para mostrar el histograma de una imagen escala de grises de 8 bpp. Comparar con la función de matlab para este fin. 18. Crear una función para mostrar el histograma de una imagen a color. Comparar con la función de matlab para este fin. 19. Crear una función para manipular el brillo de una imagen escala de grises por dos métodos. Comparar con la función de matlab para este fin. 20. Crear una función para manipular el brillo de una imagen a colores por dos métodos. Comparar con la función de matlab para este fin. 21. Crear una función para manipular el contraste de una imagen escala de grises por cuatro métodos de un valor umbral. Comparar con la función de matlab para este fin.
  • 8. 8 22. Crear una función para manipular el contraste de una imagen a colores por cuatro métodos de un valor umbral. Comparar con la función de matlab para este fin. 23. Crear una función para manipular el contraste de una imagen escala de grises por dos métodos de más de un valor umbral. Comparar con la función de matlab para este fin. 24. Crear una función para realizar la corrección gamma para varios valores de gamma de una imagen. Comparar con la función de matlab para este fin. 25. Crear una función para dilatar imágenes de escala de grises de 8bpp. Comparar con la función de matlab para este fin. Considerar tres tipos de elemento estructural: a. Cuadrado de 3x3 b. Diamante de 3x3 c. Disco de 3x3 26. Crear una función para erosionar imágenes escala de grises de 8 bpp. Comparar con la función de matlab para este fin. Considerar tres tipos de elemento estructural: a. Cuadrado de 3x3 b. Diamante de 3x3 c. Disco de 3x3 27. Crear una función para dilatar imágenes binarias. Comparar con la función de matlab para este fin. Considerar tres tipos de elemento estructural: a. Cuadrado de 3x3 b. Diamante de 3x3 c. Disco de 3x3 28. Crear una función para erosionar imágenes binarias. Comparar con la función de matlab para este fin. Considerar tres tipos de elemento estructural: a. Cuadrado de 3x3 b. Diamante de 3x3 c. Disco de 3x3 29. Crear una función para aperturar imágenes binarias. Comparar con la función de matlab para este fin. 30. Crear una función para clausurar imágenes binarias. Comparar con la función de matlab para este fin. 31. Crear una función para detectar fronteras (bordes). Comparar con la función de matlab para este fin. 32. Crear una función para rellenar regiones. Comparar con la función de matlab para este fin. En cada procedimiento cuestionario y ejercicio mostrar sus observaciones, conclusiones y recomendaciones. Cada línea del script de la función creada debe estar comentada. FUNCIONES DE MATLAB: imhist, imadjust, histeq, imdilate, strel, imerode, imopen, imclose.