Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procesamientodigitaldeimgenesconmatlab 110215205203 Phpapp02
Procesamientodigitaldeimgenesconmatlab 110215205203 Phpapp02
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
>> Im_RGB=imread('fruta.jpg');
http://lonely113.blogspot.com
1=R
2=G
3=B
http://lonely113.blogspot.com
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
>> 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
>> 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
>> imshow(Im_RGB)
>> improfile
300
250
200
150
100
50
http://lonely113.blogspot.com
50
100
150
200
250
300
Distance along profile
350
400
450
500
Submuestreo
13
a12
a13
a14
a15
a16
a17
a18
a1n
>> Im_sub=Im_RGB(1:4:end,1:4:end,1:1:end);
>> imshow(Im_sub)
http://lonely113.blogspot.com
Imagen_double=double(Imagen_uint8)
Imagen_uint8=uint8(Imagen_double)
El comando imshow slo muestra imgenes del tipo
uint8.
http://lonely113.blogspot.com
>> 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
http://lonely113.blogspot.com
Filtraje
18
http://lonely113.blogspot.com
Se puede realizar similar al caso anterior, definiendo un filtro para deteccin de bordes.
http://lonely113.blogspot.com
Filtro Mediana
21
Imagen2=medfilt2(Imagen)
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.
mascara es el tipo de mascara a utilizar (sobel,
http://lonely113.blogspot.com
Ejemplo:
23
http://lonely113.blogspot.com
Binarizacin
24
Imagen_bin=im2bw(Imagen,level)
Dnde: level es el nivel de umbral entre 0 y 1.
http://lonely113.blogspot.com
Ejemplo: Mtodo 1.
25
http://lonely113.blogspot.com
Ejemplo: Mtodo 2.
26
>> Im_bin=im2bw(Im_RGB,0.5)
http://lonely113.blogspot.com
Erosin y Dilatacin
27
Dilatacin
28
Se utiliza el comando:
Result=imdilate(Imagen,SE)
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)
Dnde: SE es la estructura del arreglo a utilizar
como rejilla.
Imagen es previamente binarizada.
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
http://lonely113.blogspot.com
Vecindad-8
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
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)
Dnde: C=4 u 8 (Conexin)
5. Para obtener el nmero de objetos:
n=max(max(Im_label))
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
Ejemplo:
39
>> imshow(Im_bin)
>> Im_sel=bwselect(8);
>> imshow(Im_sel)
http://lonely113.blogspot.com
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
http://lonely113.blogspot.com
El adaptador instalado es
"winvideo".
Hay un dispositivo de
adquisicin de imgenes
instalado (DeviceID).
El dispositivo instalado es
una webcam "ilook300".
Soporta 13 formatos de
adquisicin. Formato por
defecto: RGB 640x480.
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
>> 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
>> imaqtool
http://lonely113.blogspot.com
Aplicaciones
48
2. Cuenta
Im_RGB
Im_gray
Im_edge
Im_edge2
http://lonely113.blogspot.com
2. Conteo de Objetos
51
imagen.
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
http://lonely113.blogspot.com
Im_bin
2. Conteo de Objetos
54
Im_bin2
http://lonely113.blogspot.com
2. Conteo de Objetos
55
Im_erode
Im_dilate
3. Reconocimiento de Caracteres
56
http://www.matpic.com/esp/matlab/ocr.html.
Para usar el algoritmo los archivos a descargados se deben copiar
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
3. Reconocimiento de Caracteres
60
text_fin
http://lonely113.blogspot.com
61