Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procesamientodigitaldeimgenesconmatlab 110215205203 Phpapp02 PDF
Procesamientodigitaldeimgenesconmatlab 110215205203 Phpapp02 PDF
http://lonely113.blogspot.com
Lectura de Imgenes
2
Mediante el comando:
Imagen=imread(nombre.extensin)
La imagen a leer debe encontrarse en la carpeta de trabajo de
Matlab. Los formatos de imagen soportados por Matlab son:
Formato Extensin
TIFF .tiff
JPEG .jpg
GIF .gif
BMP .bmp
PNG .png
XWD .xwd
http://lonely113.blogspot.com
Ejemplo: Lectura de una imagen *.jpg
3
>> Im_RGB=imread('fruta.jpg');
http://lonely113.blogspot.com
Representacin de Imgenes en Matlab
4
1=R
2=G
3=B
http://lonely113.blogspot.com
Obtencin de los Planos RGB
5
>> Im_R=Im_RGB(:,:,1);
>> Im_G=Im_RGB(:,:,2);
>> Im_B=Im_RGB(:,:,3);
http://lonely113.blogspot.com
Tamao de la Imagen
6
Im_RGB: 600x800
3 planos (R,G y B)
http://lonely113.blogspot.com
Despliegue de Imgenes
7
>> imshow(Im_RGB)
http://lonely113.blogspot.com
Escritura de Imgenes
8
Con el comando:
imwrite(Imagen,nombre.extensin)
>> imwrite(Im_RGB,'imagen.jpg');
http://lonely113.blogspot.com
Lectura de Valor de Pixeles
9
>> Im_RGB(300,300,1)
ans =
255
>> Im_RGB(300,300,2)
ans =
178
>> Im_RGB(300,300,3)
ans =
10
http://lonely113.blogspot.com
Seleccin manual y Lectura de Valor de
Pixel
10
>> imshow(Im_RGB)
>> pixel=impixel
pixel =
252 144 115
http://lonely113.blogspot.com
Edicin de Pixeles
11
>> Im_RGB(200,750,1)=255;
>> Im_RGB(200,750,2)=255;
>> Im_RGB(200,750,3)=255;
http://lonely113.blogspot.com
Perfil de Imagen
12
200
150
100
50
0
0 50 100 150 200 250 300 350 400 450 500
Distance along profile
http://lonely113.blogspot.com
Submuestreo
13
Imagen_ sub=Imagen(1:a:end,1:a:end,1:1:end)
http://lonely113.blogspot.com
Ejemplo: Submuestreo de la imagen Im_RGB
por un factor de 4.
14
>> Im_sub=Im_RGB(1:4:end,1:4:end,1:1:end);
>> imshow(Im_sub)
http://lonely113.blogspot.com
Transformacin Uint8 - Double
15
Imagen_double=double(Imagen_uint8)
Imagen_uint8=uint8(Imagen_double)
El comando imshow slo muestra imgenes del tipo
uint8.
http://lonely113.blogspot.com
Ejemplo: Se requiere resaltar el gris en una
imagen por un factor 0.25.
16
>> Im_double=double(Im_RGB);
>> Im_double=Im_double*0.25;
>> Im_uint8=uint8(Im_double);
>> Imshow(Im_uint8)
http://lonely113.blogspot.com
Filtraje
17
f es la matrz filtro.
http://lonely113.blogspot.com
Filtraje
18
http://lonely113.blogspot.com
Ejemplo: Deteccin de bordes.
20
Se puede realizar similar al caso anterior, definiendo un filtro para deteccin de bordes.
Imagen_gray=rgb2gray(Imagen_RGB);
http://lonely113.blogspot.com
Filtro Mediana
21
Ejemplo:
>> Im_RGB=imread('fruta.jpg');
>> Im_gray=rgb2gray(Im_RGB);
>> Im_gray=imnoise(Im_gray, 'salt
& pepper');
>> imshow(Im_gray)
>> Im_filt=medfilt2(Im_gray);
>> figure, imshow(Im_filt)
http://lonely113.blogspot.com
Deteccin de Bordes
22
imagen_edge=edge(imagen_gray,mascara);
Se requiere que la imagen est en escala de grises.
http://lonely113.blogspot.com
Ejemplo:
23
http://lonely113.blogspot.com
Binarizacin
24
http://lonely113.blogspot.com
Ejemplo: Mtodo 1.
25
>> Im_bin=Im_gray>=128
http://lonely113.blogspot.com
Ejemplo: Mtodo 2.
26
>> Im_bin=im2bw(Im_RGB,0.5)
http://lonely113.blogspot.com
Erosin y Dilatacin
27
http://lonely113.blogspot.com
Dilatacin
28
Se utiliza el comando:
Result=imdilate(Imagen,SE)
Dnde: SE es la estructura del arreglo a utilizar como
rejilla.
Imagen es previamente binarizada.
Existen varias maneras de obtener una estructura SE.
Se realiza mediante el comando "strel". Revisar los
archivos de ayuda de Matlab.
http://lonely113.blogspot.com
Dilatacin
29
Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada con
bordes resaltados en la imagen), el resultado de aplicar la operacin de dilatacin en el
pixel que se traslapa con el elemento central de la rejilla es:
"Si alguno de los pixeles de la rejilla configurados como 1 coincide con al menos uno de
la imagen el pixel resultante es 1".
http://lonely113.blogspot.com
Ejemplo:
30
>> SE=strel('square',30);
>> Im_RGB=imread('imagen.jpg');
>> Im_gray=rgb2gray(Im_RGB);
>> Im_edge=edge(Im_gray,'sobel');
>> Im_dilate=imdilate(Im_edge,se);
>> imshow(Im_edge);
>> figure,imshow(Im_dilate)
http://lonely113.blogspot.com
Erosin
31
Se utiliza el comando:
Result=imerode(Imagen,SE)
http://lonely113.blogspot.com
Erosin
32
Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada con
bordes resaltados en la imagen), el resultado de aplicar la operacin de erosin en el
pixel que se traslapa con el elemento central de la rejilla es:
"Todos los pixeles de la rejilla configurados como 1 deben coincidir con todos los de la
imagen, si esto no sucede el resultado del pixel es 0".
http://lonely113.blogspot.com
Ejemplo:
33
>> SE=strel('square',15);
>> Im_erode=imerode(Im_dilate,SE);
>> imshow(Im_dilate)
>> figure,imshow(Im_erode)
http://lonely113.blogspot.com
Vecindad
34
Vecindad-4 Vecindad-8
http://lonely113.blogspot.com
Conectividad
35
Dos pixeles estn con la misma etiqueta estn conectados si existe un camino del uno al otro a travs
de pixeles vecinos con la misma etiqueta.
La conectividad en Matlab puede ser:
Conexin-4: Se toma en cuenta la vecindad-4 para determinar la conectividad de pixeles.
Conexin-8: Se toma en cuenta la vecindad-8 para determinar la conectividad de pixeles.
ETIQUETADO: Agrupacin de pixeles con caractersticas similares
http://lonely113.blogspot.com
Cuenta y Etiquetado de Objetos en una
Imagen
36
4. Ejecutar el siguiente comando para etiquetar los objetos. Cada objeto encontrado se
etiqueta con un nmero entero: 1, 2, 3,:
Im_label=bwlabel(Im_bin,C)
http://lonely113.blogspot.com
Ejemplo:
37
>> Im_RGB=imread('imagen.jpg');
>> Im_bin=im2bw(Im_RGB,0.5)
>>imshow(Im_bin)
>> Im_bin=not(Im_bin);
>> imshow(Im_bin)
>> Im_label=bwlabel(Im_bin,8);
>> n=max(max(Im_label))
n=
5
http://lonely113.blogspot.com
Seleccin de un Objeto
38
http://lonely113.blogspot.com
Ejemplo:
39
>> imshow(Im_bin)
>> Im_sel=bwselect(8);
>> imshow(Im_sel)
http://lonely113.blogspot.com
Captura de Imgenes Mediante Cmaras
Conectadas a la Pc
40
http://lonely113.blogspot.com
Obtencin de Informacin del Dispositivo
41
Comandos a utilizar:
Imaqhwinfo
Devuelve la informacin del hardware y software disponibles, tales como:
Adaptador de video instalado, versin de Matlab, Toolbox (nombre y
versin).
Imaqhwinfo(adaptor)
Donde adaptor es el nombre del adaptador instalado, por lo general
winvideo. Este comando devuelve informacin relacionada al adaptador.
Imaqhwinfo(adaptor,DeviceID)
Donde DeviceID es el ID del dispositivo a utilizar obtenido con el
comando anterior. Si slo se cuenta con un dispositivo conectado el
DeviceID ser 1. Este comando muestra informacin del dispositivo
conectado (cmara) .
http://lonely113.blogspot.com
Ejemplo: Ejecutando los comandos
42
>> imaqhwinfo
ans =
InstalledAdaptors: {'winvideo'}
El adaptador instalado es
MATLABVersion: '7.8 (R2009a)' "winvideo".
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '3.3 (R2009a)
>> imaqhwinfo('winvideo',1)
El dispositivo instalado es
ans =
DefaultFormat: 'RGB24_640x480'
una webcam "ilook300".
DeviceFileSupported: 0 Soporta 13 formatos de
DeviceName: 'iLook 300'
DeviceID: 1
adquisicin. Formato por
ObjectConstructor: 'videoinput('winvideo', 1)'
SupportedFormats: {1x13 cell}
defecto: RGB 640x480.
http://lonely113.blogspot.com
Preparacin del Dispositivo
43
Crear la estructura:
cam=imaqhwinfo(adaptor,DeviceID)
Para poder obtener las caractersticas del dispositivo con facilidad.
Por ejemplo, para obtener los formatos soportados:
cam.SupportedFormats
Ejecutar el comando:
video=videoinput(adaptor,DeviceID,Format)
Construye un objeto de entrada de video (nexo entre el dispositivo y
Matlab). Si no se especifica Format se asume el formato por defecto.
http://lonely113.blogspot.com
Ejemplo: Preparacin de dispositivo
44
>> cam=imaqhwinfo('winvideo',1);
>> cam.SupportedFormats
ans =
Columns 1 through 4
'I420_160x120' 'I420_176x144' 'I420_320x240' 'I420_352x288'
Columns 5 through 8
'I420_640x480' 'RGB24_1280x960' 'RGB24_1600x1200'
'RGB24_160x120'
Columns 9 through 12
'RGB24_176x144' 'RGB24_320x240' 'RGB24_352x288'
'RGB24_640x480'
Column 13
'RGB24_800x600'
>> video=videoinput('winvideo',1,'RGB24_640x480');
http://lonely113.blogspot.com
Pre - Visualizacin
45
>> preview(video)
http://lonely113.blogspot.com
Captura
46
>> foto=getsnapshot(video);
>> imshow(foto)
http://lonely113.blogspot.com
Image Acquisition tool
47
>> imaqtool
http://lonely113.blogspot.com
Aplicaciones
48
http://lonely113.blogspot.com
1. Deteccin de bordes de una imagen
49
>> cam=imaqhwinfo(winvideo,1);
>> video=videoinput('winvideo',1);
>> preview(video)
>> Im_RGB=getsnapshot(video);
>> imshow(Im_RGB)
>> Im_gray=rgb2gray(Im_RGB);
>> Im_gray=medfilt2(Im_gray);
>> figure,imshow(Im_gray)
>> Im_edge=edge(Im_gray,'sobel');
>> figure,imshow(Im_edge)
>>Im_edge2=not(Im_edge);
>> figure,imshow(Im_edge2)
Im_RGB Im_gray
Im_edge Im_edge2
http://lonely113.blogspot.com
2. Conteo de Objetos
51
http://lonely113.blogspot.com
2. Conteo de Objetos
52
>> cam=imaqhwinfo(winvideo,1);
>> video=videoinput(winvideo,1);
>> Im_RGB=getsnapshot(video);
>> imshow(Im_RGB)
>> Im_bin=im2bw(Im_RGB,0.5);
>> figure, imshow(Im_bin)
>> Im_bin2=not(Im_bin);
>> figure, imshow(Im_bin2)
>> SE=strel('square',10);
>> Im_erode=imerode(Im_bin2,SE);
>> figure, imshow(Im_erode)
>> Im_dilate=imdilate(Im_erode,SE);
>> figure,imshow(Im_dilate)
>> Im_label=bwlabel(Im_dilate,8);
>> n=max(max(Im_label))
n=
10
http://lonely113.blogspot.com
2. Conteo de Objetos
53
Im_RGB Im_bin
http://lonely113.blogspot.com
2. Conteo de Objetos
54
Si no se aplica erosin se
etiquetara cada objeto
aislado, dando como resultado
un nmero de objetos muy
superior al real.
Im_bin2
http://lonely113.blogspot.com
2. Conteo de Objetos
55
Im_erode Im_dilate
Con estas dos operaciones se obtiene slo el cuerpo de los transistores en su
tamao original, los pines ya fueros desechados. La imagen est lista ahora para el
etiquetado y conteo.
http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
56
OCR
http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
57
>> cam=imaqhwinfo('winvideo',1);
>> video=videoinput('winvideo',1);
>> preview(video)
>> text=getsnapshot(video);
>> imshow(text)
>> text_bin=im2bw(text,0.5);
>> figure,imshow(text_bin)
>> SE=strel('square',5);
>> text_erode=imerode(text_bin,SE);
>> figure,imshow(text_erode)
>> text_dilate=imdilate(text_erode,SE);
>> figure,imshow(text_dilate)
>> text_fin=not(text_dilate);
>> figure,imshow(text_fin)
>> imwrite(text_fin,'TEST_1.jpg');
>> ocr
http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
58
text text_bin
text_bin contiene elementos no deseados (puntos blancos) que podran perjudicar el proceso
de reconocimiento de caracteres. Estos elementos se eliminan aplicando la operacin de
erosin.
http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
59
text_erode text_dilate
text_fin
http://lonely113.blogspot.com
http://lonely113.blogspot.com 61