procesamiento digital en matlab

15
CURSO : LABORATORIO DE PROCESAMIENTO DIGITAL DE IMAGENES TRABAJO CALIFICADO #04 TEMA : PROCESAMIENTO DIGITAL EN MATLAB ALUMNOS : CARBAJAL ARELA REYNALDO FLOREZ TAPIA JOSE ALEJANDRO CHUCHULLO TITO, JAVIER MAMANI CCASA, WALTER MATTA HERNANDEZ JORGE SARCO MONTIEL MIGUEL ZAFERZON QUIROZ VICTOR NUÑEZ CCOSCCO BOOZ

Upload: javier-zapata

Post on 18-Dec-2014

261 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Procesamiento Digital en MATLAB

CURSO : LABORATORIO DE PROCESAMIENTO

DIGITAL DE IMAGENES

TRABAJO CALIFICADO #04

TEMA :

PROCESAMIENTO DIGITAL EN MATLAB

ALUMNOS : CARBAJAL ARELA REYNALDO

FLOREZ TAPIA JOSE ALEJANDRO

CHUCHULLO TITO, JAVIER

MAMANI CCASA, WALTER

MATTA HERNANDEZ JORGE

SARCO MONTIEL MIGUEL

ZAFERZON QUIROZ VICTOR

NUÑEZ CCOSCCO BOOZ

DOCENTE : ING. LIZARDO PARI

Practica 4

Page 2: Procesamiento Digital en MATLAB

PROCEDIMIENTO

1.- Leer Y Mostrar Una Imagen.

Lea y muestre la imagen ¨rice.png¨

>> i1=imread('C:\Users\alex\Documents\MATLAB\imagenes\rice.png');

>> imshow(i1)

2.- Estimar los píxeles de fondo.

En la imagen de muestra, la iluminación del fondo es mas brillante en el centro de la imagen que en la parte inferior. en este paso el ejemplo utiliza una operación apertura morfológica para estimar la iluminación de fondo. Una apertura es una erosión seguida de una dilatación , usando l mismo elemento de estructuración para ambas operaciones . la abertura morfológica tiene el efecto de remover objetos que no pueden contener totalmente el elemento de estructuración

Explicar que es lo que sucede con el siguiente comando:

Page 3: Procesamiento Digital en MATLAB

>> background = imopen(i1,strel('disk',15)); abertura morfológica en el elemento estructural en forma de disco donde su radio es de 15

>> figure(2)

>> imshow(background)

3.- Vista de la aproximación de fondo como una superficie.

Utilizar comando surf

>> figure(3)

>> surf(double(background(1:8:end,1:8:end))),zlim([0 255]);

Page 4: Procesamiento Digital en MATLAB

010

2030

40

0

10

20

30

400

50

100

150

200

250

Invertimos la escala.

010

2030

40

0

10

20

30

40

0

50

100

150

200

250

Interprete en sus palabras la aproximación superficial analizada:

Page 5: Procesamiento Digital en MATLAB

Los tonos de intensidad del fondo de la imagen pero solo se muestra uno de los ocho pixeles en cada dirección; de otro modo el diagrama superficial sería demasiado denso, cada zona rectangular de la grafica muestra un píxel.

Esto se realiza mediante el comando “surf” y solo tomamos uno de los ocho píxeles con el comando “double(background(1:8:end,1:8:end))”.

4.- Crear una imagen con un fondo uniforme.

Para crear fondo mas uniforme

>> i2 = imsubtract(i1,background);

Imsubtract ¿Cómo es que funciona este comando, que parametros tiene?

Resta la constante de la imagen o dos imágenes,.

Z = IMSUBTRACT(X,Y)

substrae cada elemento en la serie Y del el elemento correspondiente en la serie X e ingresos la diferencia en el elemento correspondiente de la serie del rendimiento Z. X y Y son reales, series numéricas del mismo tamaño, o Y es un doble escalar.

>> figure(4)

>> imshow(i2)

Page 6: Procesamiento Digital en MATLAB

5.- Ajuste del contraste en la imagen procesada.

Luego de la substracción la imagen tiene un fondo uniforme pero ahora esta muy oscura usar imadjust para ajustar el contraste de la imagen

>> i3=imadjust(i2,[0 0.4],[]);

>> figure(5)

>> imshow(i3)

¿Qué parámetros tiene el comando imadjust?

g = imadjust(f, [low_in high_in], [low_out high_out], gamma)

El valor de intensidad de los píxeles de una imagen es cambiado siguiendo las siguientes gráficas, que dependen del valor de gamma. Si gamma se omite se toma por 1. Si high_out es menor que low_out, se invertirá la intensidad de salida con respecto a la imagen original.

Page 7: Procesamiento Digital en MATLAB

6.- Crear una versión binaria de la imagen.

>> level=graythresh(i3);

>> bw=im2bw(i3,level);

>> figure(6)

>> imshow(bw)

>> whos

Name Size Bytes Class Attributes

background 256x256 65536 uint8

bw 256x256 65536 logical

i1 256x256 65536 uint8

i2 256x256 65536 uint8

i3 256x256 65536 uint8

level 1x1 8 double

Page 8: Procesamiento Digital en MATLAB

¿Qué hace la funcion graythresh?

Escoge el umbral para minimizar la variación entre las clases de los pixeles negros y blancos.

¿Cómo se realiza la conversión en el comando im2bw?

Convierte la imagen en imagen binaria separando sus intensidades en dos valores [1 0] entre esta escala hace que 1 sea blanco y 0 sea negro.

La imagen binaria bw es de clase lógica, como puede ser vista, llamando el comando whos

7.- Determine el número de objetos de una imagen.

Luego de convertir la imagen a una imagen binaria, puede usar el comando bwlabel para determinar el numero de granos de arroz en la imagen , numObjets

¿Cómo funciona este comando?

[labeled,numObjects] = bwlabel(bw,4); Retorna en numObjects el número de objetos conectados dentro de BW que sería la imagen total

>> [labeled,numObjects]=bwlabel(bw,4);

¿Cuántos objetos presenta la imagen?

>> numObjects

numObjects =

101

8.- Examinar la matriz de nivel.Se puede usar imcrop para seleccionar una porcionde la imagen o sino usando la herramienta pixel región para examinar losvalores del pixelUsar imshow>> figure(7)>> imshow(labeled);

Page 9: Procesamiento Digital en MATLAB

>> imtool(labeled);

9.-Mostrar la matriz de nivel como una matriz indexada de Pseudocolor.

Analiza el funcionamiento y los parámetros de el comando label2rgb.

Page 10: Procesamiento Digital en MATLAB

Convierte la matriz labeled en un formato de imagen RGB para propósitos de visualización de regiones etiquetadas, los parámetros del comando son:

label2rgb(L, map, zerocolor, order)

Donde map puede ser una matriz colormap nx3 o una cadena que contiene los nombres de los colormap soportados por Matlab. Y zerocolor especifica el valor de color para etiqueta de valor 0, y order indica el orden en que se asignara los valores colormap de la matriz RGB.

>> pseudo_color = label2rgb(labeled, @spring, 'c', 'shuffle');

>> figure(8)

>> imshow(pseudo_color);

10.- Medida de las propiedades de los objetos.El comando regionprops mide propiedades de objetos y regiones en una imagen

>> graindata=regionprops(labeled,'basic')

graindata =

101x1 struct array with fields:

Area

Centroid

BoundingBox

Page 11: Procesamiento Digital en MATLAB

¿Qué propiedades muestra la función regionprops?

STATS = REGIONPROPS(L,PROPERTIES) los elementos del entero Positivos de L corresponde a las regiones diferentes. Por

ejemplo, el juego de elementos de L igual a 1 corresponde a la región 1; el juego de elementos de L igual a 2 corresponde a la región 2; y así sucesivamente. STATS es una serie de la estructura de longitud max(L (:)). Los campos de la serie de la estructura denotan las propiedades diferentes para cada región, como esta especificado por las PROPIEDADES.

Las PROPIEDADES pueden ser una lista coma-separada de cordones, una serie

celular, los cordones conteniendo, el cordón ' el all', o el cordón ' el basic'. El juego de las cuerdas de la medida válida incluye:

'Area' 'EulerNumber' 'Orientation' 'BoundingBox' 'Extent' 'Perimeter' 'Centroid' 'Extrema' 'PixelIdxList' 'ConvexArea' 'FilledArea' 'PixelList' 'ConvexHull' 'FilledImage' 'Solidity' 'ConvexImage' 'Image' 'SubarrayIdx' 'Eccentricity' 'MajorAxisLength' 'EquivDiameter' 'MinorAxisLength'

¿Qué medida usa la propiedad basic? Detalle cada una.

Si se coloca Basic las propiedades que se computan son:

Area: es un escalar que muestra el número actual de pixeles de la figura. Centroid: indica un vector que es el centro de masa de la figura. BoundingBox: indica el tamaño del rectángulo más pequeño que contiene esta

región.

>> graindata(51)

ans =

Area: 140

Centroid: [114.5000 15.4500]

BoundingBox: [107.5000 4.5000 13 20]

Graficar centros de gravedad en la imagen:

>> centroids = cat(1,graindata.Centroid);

Page 12: Procesamiento Digital en MATLAB

>>hold on

>>plot(centroides(:,1),centroides(:,2),'b+')

En este caso el comando marcara cada grano de arroz, esto por el parámetro ‘b+’:

CONCLUSIONES

Se consiguió una aplicación de contador de objetos útil en una aplicación agroindustrial de selección de arroz o conteo de objetos

Se logro crearle un fondo más uniforme a una imagen Se determino el objeto de mayor área en una imagen El comando regionprops mide propiedades de objetos y regiones en una

imagen