Sildenafil Meds (Erectile Dysfunction), Sildenafil 50 Mg Roemmers

LABORATORIO DE VISIÓN ARTIFICIAL
Práctica 2
Todas las imágenes que vamos a utilizar en esta práctica deberán ser descargadas
previamente de la página Web de la asignatura, en nuestro directorio c:\vision\lab. A
continuación ejecutamos el programa Matlab, para leer y procesar dichas imágenes.
1.- Ejecutar los siguientes comandos para leer la imagen especificada en formato BMP, con
mapa de colores indexado, y mostrarla. Obsérvese lo poco contrastada que es esta imagen.
» [x,map]=bmpread('c:\vision\lab\bazo.bmp');
» imshow(x,map)
2.- Convertir la imagen anterior en otra con formato de escala de 256 niveles de gris,
mostrándola posteriormente. Como la imagen original no estaba coloreada no debemos
apreciar diferencia visual alguna.
» i=ind2gray(x,map);
» imshow(i,256)
3.- Mostrar el histograma de la imagen anterior y estudiar su aspecto para determinar que,
efectivamente, se trata de una imagen poco contrastada.
» imhist(i,256);
4.- Ecualizar el histograma de la imagen i, almacenando la imagen resultante en el array e.
Comparar los resultados obtenidos mostrando la nueva imagen y su histograma.
» e=histeq(i,256);
» imshow(e,256)
» imhist(e,256);
5.- Ahora vamos a trabajar con otra imagen de la que previamente averiguaremos su formato:
RGB si se almacenan 24 bits por pixel, o mapa indexado de colores si se almacenan 8 bits por
pixel.
» bpp=bmpread('c:\vision\lab\envase.bmp')
bpp =
24
Como el valor devuelto por la función es 24, lógicamente se trata de un formato RGB.
6.- Según lo anterior, leemos la nueva imagen en formato RGB, pero antes borramos todas las
variables actualmente existentes en nuestro espacio de trabajo con el fin de que no ocupen
memoria innecesaria.
» clear
» [r,g,b]=bmpread('c:\vision\lab\envase.bmp');
J. M. Miguel Jiménez
Departamento de Electrónica. Universidad de Alcalá
Pág.1
7.- Ahora convertimos la imagen a escala de grises, la visualizamos y también representamos
su histograma con idea de deducir un umbral adecuado para su posterior binarización.
» i=rgb2gray(r,g,b);
» imshow(i,256)
» imhist(i,256)
8.- Con el siguiente comando umbralizamos la imagen convirtiéndola en una imagen cuyos
pixels son totalmente negros (0) y blancos (1). El segundo parámetro representa el umbral que
deseamos fijar. Como el histograma de la imagen i es bimodal y el nivel de gris central es de
aproximadamente 0.25, usamos este umbral.
» b=im2bw(i,0.25);
» imshow(b,2)
» imshow(b,256)
como la imagen resultante sólo tiene 2 niveles de gris (0 y 1), los dos últimos comandos
producen el mismo efecto.
9.- Con idea de probar algunas posibilidades de la convolución en dos dimensiones para
imágenes, vamos a ir experimentando con varias máscaras:
- Máscara 1: hace una derivación en sentido horizontal en el entorno de cada pìxel, por lo
que detecta bordes verticales(concretamente, transiciones de blanco a negro).
- Máscara 2: hace una derivación vertical, por lo que detecta bordes horizontales.
- Máscara 3: hace una derivación de un pixel respecto a la media de los de su entorno, por
lo que detecta puntos.
-1
-1
-1
0
0
0
1
1
1
Máscara 1
-1
0
1
-1
0
1
-1
0
1
Máscara 2
-1
-1
-1
-1
8
-1
-1
-1
-1
Máscara 3
» mascara=[-1 0 1
-1 0 1
-1 0 1]
» lv=conv2(b,mascara);
» imshow(lv,256)
» mascara=[-1 -1 -1
0 0 0
1 1 1]
» lh=conv2(b,mascara);
» imshow(lh,256)
» mascara=[-1 -1 -1
-1 8 -1
-1 -1 -1]
» p=conv2(b,mascara);
» imshow(p,2)
10.- Utilizando máscaras de Sobel sobre la imagen umbralizada del apartado 8, obtener dos
imágenes resultantes de las derivadas Gx y Gy (horizontal y vertical) y luego:
- Visualizar cada una de las imágenes obtenidas.
J. M. Miguel Jiménez
Departamento de Electrónica. Universidad de Alcalá
Pág.2
- Calcular los valores absolutos de dichas imágenes y visualizarlas. Ver diferencias respecto a
las imágenes anteriores sin valor absoluto.
- Obtener una imagen gradiente a partir de G=|Gx| + |Gy|.
11.- Hacer a la imagen umbralizada del apartado 8 una derivación de segundo orden,
utilizando una máscara Laplaciana.
12.- Crear desde Paint una imagen en escala de grises con varias figuras cuadradas y
rectangulares blancas sobre fondo negro. Leer esta imagen desde Matlab y utilizar una
máscara de convolución que nos permita detectar una determinada esquina de cada figura.
13.- Ejercicio de segmentación por umbralizado a dos niveles:
1
Fondo
Obj. 4
Histograma
3
Obj. 3
2
Obj. 2
-
Dibujar con Paint una imagen similar a la mostrada(objetos con diferentes niveles de gris)
y guardarla.
Segmentar la imagen con Matlab, de modo que nos quedemos con uno o dos objetos de
luminancia intermedia, tal y como se muestra en el siguiente proceso gráfico de ejemplo:
Obj. 1
-
4
Imagen original
0
01 02 03 04 05 06 07 08
09 1
Imagen segmentada
14.- Crea varias figuras con Paint parecidas a las de los siguientes ejemplos y luego realiza
sobre ellas, desde Matlab, las operaciones morfológicas que aquí se ilustran. Consulta
previamente la ayuda de los diversos comandos.
bw = imread('text.tif');
imshow(bw), title('Original')
bw2 = bwareaopen(bw,40);
figure, imshow(bw2), title('Area open (40 pixels)')
J. M. Miguel Jiménez
Departamento de Electrónica. Universidad de Alcalá
Pág.3
bw1 = imread('circles.tif');
imshow(bw1)
bw2 = bwmorph(bw1,'skel',Inf);
figure, imshow(bw2)
rgb=imread('prueba.bmp');
bn=rgb2gray(rgb);
imshow(bn), title(‘Original’)
J. M. Miguel Jiménez
Departamento de Electrónica. Universidad de Alcalá
Pág.4
c=bwmorph(bn,'open');
figure, imshow(c), title(‘Apertura’)
c=bwmorph(bn,'close');
figure, imshow(c), title(‘Cierre’)
J. M. Miguel Jiménez
Departamento de Electrónica. Universidad de Alcalá
Pág.5