UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los...

29
UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE POSTGRADO MAESTRÍA EN MANUFACTURA INTEGRADA POR COMPUTADORA SISTEMAS DE VISIÓN EN MANUFACTURA Catedrático: Msc Manuel Napoleón Cardona Gutiérrez GUÍA DE EJERCICIOS Presenta García Pérez, Sergio Miguel GP980067 Antiguo Cuscatlán, 16 de Diciembre de 2014

Transcript of UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los...

Page 1: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

UNIVERSIDAD DON BOSCO

VICERRECTORÍA DE ESTUDIOS DE POSTGRADO

MAESTRÍA EN MANUFACTURA INTEGRADA POR COMPUTADORA

SISTEMAS DE VISIÓN EN MANUFACTURA

Catedrático: Msc Manuel Napoleón Cardona Gutiérrez

GUÍA DE EJERCICIOS

Presenta

García Pérez, Sergio Miguel GP980067

Antiguo Cuscatlán, 16 de Diciembre de 2014

Page 2: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

GUÍA DE EJERCICIOS

Clase del Martes 09/12/2014 (Archivo: 2. Fundamentos_de_imagenes.pdf)

Ejercicio No. 1.

Considerando la imagen peppers.png.

(a) Leala en Matlab y guardela en la variable img.

(b) ¿Qué sucede con la imagen img si se le aplica img2=img(1:2:end,1:2:end,:)?.

(c) Convierta la imagen img en tipo double, uint8, uint16. Grafíque con imshow y comente sobre los

resultados.

(d) Convierta la imagen img en escala de grises y a binaria y muéstrelas.

Solución.

(a)

Figura 1. Lectura y Muestra de Imagen Peppers

Page 3: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

(b) Al utilizar dicha instrucción, hay una reducción de los pixeles en la imagen, ya que la lectura y el

muestreo que se ha colocado es desde el inicio hasta el final, con un “paso” de lectura de 2 en 2.

Figura 2. Reducción de pixeles en la Imagen Peppers

Page 4: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

(c) La conversión y la muestra de las imágenes se

realiza directamente en Matlab con los comandos:

im2double, im2uint8, im2uint16.

Figura 3. instrucciones en Matlab para las diferentes

conversiones: doble, entero 16 sin signo, entero 8 sin

signo

La imagen original aparentemente no sufre ningún

cambio, al momento de convertirla a los tres

formatos que el literal nos solicita. Ya que la

matriz de la imagen original posee números

positivos, por lo que la conversión a enteros sin

signos, parece no sufrir ningún cambio.

Figura 4. Imagen Peppers en diferentes tipos

Page 5: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

(d) Es de tener presente que, antes de realizar la conversión a imagen binaria, se debe realizar la

conversión a escala de grises.

Figura 5. Instrucciones en Matlab para conversión a escala de grises y binaria

Figura 6. Imagen Peppers, en escala de grises y binario

Page 6: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Convertir la imagen en escala de grises a tipo uint8 y uint16.

Figura 7. Instrucciones en Matlab para conversión a tipo entero 8 y entero 16

Figura 8. Imagen en Escala de Gris, a tipo entero 8 y tipo entero 16

Page 7: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 2.

Dada la imagen A del tipo double, convertirla a uint16 sin utilizar MATLAB.

A = [ 50 200; 150 70 ]

Si la imagen es del tipo double los valores que la conforman estarán en el intervalo [0 1]. Como la matriz A,

tiene valores mayores que 1, al convertirla a tipo uint16, sus elementos tendrán valores de 65535, que es el

máximo valor de los elementos en este tipo de matrices, así:

B = [ 65535 65535; 65535 65535]

Por lo que la matriz B es la matriz A pero en tipo uint16.

Page 8: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 3.

Supongamos que se tiene la imagen lena.bmp la cual tiene una dimensión de 512 x 512 píxeles, con 200

dpi. Se desea guardar la imagen en formato .tif y se desea reducir el tamaño a una dimensión de 1.28 x

1.28 pulgadas. Determine la sentencia en MATLAB para obtener lo solicitado.

Figura 9. Lectura de imagen y cambio de formato

Imagen original, 512 x 512 píxeles, con 200dpi.

dpi = dots per inch = pixel per inch

El tamaño de la imagen original, se calcula de la siguiente manera:

Por lo tanto, el tamaño de la imagen original es 2.56 pulgadas x 2.56 pulgadas.

Se desea un tamaño de la imagen de 1.28 pulgadas x 1.28

pulgadas y de 512 x 512 píxeles. Entonces lo que se debe de

conocer son los dpi que tendrá la imagen nueva. Así:

Page 9: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Entonces, la imagen de 512 x 512 pixeles y de 1.28 pulgadas x 1.28 pulgadas, tendrá 400dpi.

Figura 10. Comandos en Matlab para reducción de tamaño

Figura 11. Imagen Lena.bmp al 100% e Imagen Lena.bmp al 50%

Page 10: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 4.

Explique para que se utiliza los comandos impixelinfo y imdistline.

Dicha pregunta se resuelve con un help en Matlab.

Impixelinfo: Herramientas de información de pixel.

Crea una herramienta de información de píxeles en la figura actual

La herramienta información del píxel muestra información acerca de los píxeles en una imagen, en los

cuales el cursor está posicionado. La herramienta puede mostrar información de pixel para todas las

imágenes en una figura.

La herramienta de información del pixel es un objeto del panel, situado en la esquina inferior izquierda de la

figura, que contiene la cadena de texto "Pixel Info" seguido de la información del pixel. La información que

aparece depende del tipo de imagen. Si el cursor está fuera del área de imagen en la figura, la herramienta

de información píxel muestra la cadena predeterminada.

Figura 12. Imagen con Herramienta de Información del Pixel

Page 11: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Imdistline: Herramienta arrastrable de distancia.

Crea una herramienta arrastrable de distancia que actua en los ejes actuales. La función devuelve un

identificador de un objeto.

Figura 13. Ejemplo e imagen, uso de instrucción imdistline

Page 12: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 5.

Utilizando MATLAB, construir una imagen binaria de 120 x 200 píxeles que tenga franjas horizontales de 20

píxeles de anchura, distanciada por cada 20 píxeles.

Figura 14. Comandos en Matlab e Imagen creada

Page 13: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 6.

Construir una imagen similar al numeral anterior que tenga franjas verticales.

Figura 15. Comandos en Matlab e Imagen creada

Page 14: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 7.

Realizar una función que construya y visualice dos imágenes de 256 x 256 con variación del nivel de gris

en filas y columnas, tal como se muestran en la siguientes figuras.

Figura 16. Comandos en Matlab e Imagen creada

Page 15: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Se observa en la Figura 16, una notable linea vertical entre cada uno de las variaciones de niveles de gris.

Por lo que se toma la idea de los comandos ejecutados y se procede a crear un archivo m (grises.m) y su

respectivos resultados (código e imagen), se muestran en la Figura 17.

Figura 17. Generación de la imagen por medio de código m

Como se observa en la Figura 17, el resultado (imagen), ya es similar a lo planteado en el enunciado del

ejercicio.

Page 16: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

De la misma manera se procede para la imagen que presenta las variaciones de niveles de gris de manera

horizontal.

Figura 18. Comandos en Matlab e Imagen creada

En la Figura 18, se observa el mismo detalle que se ha descrito anteriormente para la Figura 16.

Por lo que se genera un código m (grisesh.m) y los resultados, se muestran en la Figura 19.

Page 17: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Figura 19. Generación de la imagen por medio de código m

Para ambos casos, se programo una variación de niveles de gris, por columna (como se ve en la operación

dentro del lazo for) . Por ende el nivel de gris vario desde 1 hasta 256. Es decir, desde 0 (negro) hasta 1

(blanco).

Page 18: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Clase de Jueves 11/12/2014 (Archivo: 3. Procesamiento_part1.pdf)

Ejemplo 1.

0 123 82

10 0 10

10 0 10

(a) Dibujar el histograma original.

Se utiliza Matlab y se realiza en formato de barras.

Figura 20. Histograma original

En los siguientes pasos, se utilizará la siguiente fórmula para ecualizar el histograma original:

Page 19: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

(b) Calcular el histograma acumulativo H(p).

(c) Calculo de K-1.

K=256, por tanto, K-1=255

(d) Calculo de MxN

La imagen tiene un tamaño de 3 x 3, por tanto M x N = 3 x 3 = 9

(e) Calculo de Feq.

Nueva Imagen

85 255 227

198 85 198

198 85 198

Page 20: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Figura 21. Histograma Ecualizado

Page 21: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Figura 22. Histograma Original e Histograma Ecualizado

De la Figura 22, se observa que al ecualizar el histograma original, se obtiene una distribución a lo largo de

todos los niveles de intensidad.

Page 22: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio No. 1.

Imagen 3 x 4, con seis niveles de grises.

1 2 1

3 3 3

5 4 5

6 6 6

(a) Realizar el histograma original.

Figura 23. Histograma Original

Page 23: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

(b) Nuevo valor de los píxeles.

En los siguientes pasos, se utilizará la siguiente fórmula para ecualizar el histograma original:

Y obtener el nuevo valor de los píxeles.

Page 24: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Nueva Imagen

1 2 1

4 4 4

5 4 5

7 7 7

Figura 24. Histograma Ecualizado

Page 25: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Figura 25. Histograma Original e Histograma Ecualizado

Page 26: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Ejercicio 2.

Determine el histograma original y ecualizado para una imagen de 3 bits de tamaño 64 x 64 píxeles la cual

tiene la siguiente distribución de intensidades.

rk 0 1 2 3 4 5 6 7

nk 790 1023 850 656 329 245 122 81

(a) Histograma Original.

Figura 26. Histograma Original

Page 27: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

(b) Nuevo valor de los píxeles.

En los siguientes pasos, se utilizará la siguiente fórmula para ecualizar el histograma original:

Y obtener el nuevo valor de los píxeles.

Histograma Acumulativo

Histograma[0] = 790

Histograma[1] = 1813

Histograma[2] = 2663

Histograma[3] = 3319

Histograma[4] = 3648

Histograma[5] = 3893

Histograma[6] = 4015

Histograma[7] = 4096

K = 8

K-1 = 7

N = 64

M = 64

M x N = 4096

Page 28: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Figura 26. Histograma Ecualizado

F ecualizado

Histograma[0] = 1

Histograma[1] = 3

Histograma[2] = 5

Histograma[3] = 6

Histograma[4] = 6

Histograma[5] = 7

Histograma[6] = 7

Histograma[7] = 7

Page 29: UNIVERSIDAD DON BOSCO VICERRECTORÍA DE ESTUDIOS DE … · realiza directamente en Matlab con los comandos: im2double, im2uint8, im2uint16. Figura 3. instrucciones en Matlab para

Figura 27. Histograma Original e Histograma Ecualizado