Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MT420 Unidad 1-2 Aspectos Introductorios y Fundamentos 2018-2 PDF
MT420 Unidad 1-2 Aspectos Introductorios y Fundamentos 2018-2 PDF
Unidad 1
Introducción
Aspectos introductorios.
Aspectos introductorios
• Sistema.
Aspectos introductorios
Google Jump
Facebook 360
Project Beyond
Aspectos introductorios
La correcta elección del sistema de iluminación es una de las partes fundamentales de un sistema de
visión y de ello depende en gran parte el éxito de la aplicación.
Las cámaras de visión artificial capturan la luz reflejada en los objetos, obteniendo información
lumínica para su posterior análisis. El propósito de la iluminación utilizada en las aplicaciones de visión
es controlar la forma en que la cámara ve el objeto.
Aspectos introductorios
Aspectos introductorios
Aplicaciones vinculadas con el procesamiento
digital de imágenes
Multi-dimensional
2
B G R
dron
Base de conocimiento
Procesamiento
Digital de Imágenes
Satélite de radar
Sistema de visión y procesamiento de imágenes
Para obtener imágenes digitales, se requiere de un proceso que involucra
Fuente de iluminación
Captura del elemento de la escena
Muestreo
Cuantificación y
Codificación
Columna y
Fila x
Sistema de visión y procesamiento de imágenes
Relaciones básicas entre pixeles
arriba arriba diagonal
(𝑥 − 1, 𝑦 − 1) (𝑥 − 1, 𝑦) (𝑥 − 1, 𝑦 + 1)
V2 V2 V3 V4
V4 V8 V7 V6
(𝑥 + 1, 𝑦 − 1) (𝑥 + 1, 𝑦) (𝑥 + 1, 𝑦 + 1)
La distancia existente entre dos pixeles es una de las medidas más usadas en el
procesamiento de imágenes, con aplicaciones que van desde la similitud hasta la
medición de objetos encontrados en la escena.
𝐷𝐸 𝐩𝟏 , 𝐩𝟐 = 𝑥1 − 𝑥2 2 + 𝑦1 − 𝑦2 2
P1 DCH
DE 𝐷𝐶𝐵 𝐩𝟏 , 𝐩𝟐 = 𝑥1 − 𝑥2 + 𝑦1 − 𝑦2
DCB
𝐷𝐶𝐻 𝐩𝟏 , 𝐩𝟐 = max( 𝑥1 − 𝑥2 , 𝑦1 − 𝑦2 )
P2
La decisión de usar alguna de las expresiones
dependerá de la aplicación, aunque por lo
general el euclidiano es el más utilizado.
4
320 512
>>imwrite(scaledImg, ‘Quantization_1-bit.png')
Comandos de Matlab y Simulink
Tipos de imágenes
[0 255] tipo de variable uint8
1. Imágenes de intensidad o escala de grises [0 1] tipo de variable double
2. Imágenes binarias Dos estados: 0 o 1
3. Imágenes indexadas
4. Imágenes de color RGB
A= B=
ans = ans =
2 3 4 5 6 7 3
6
>> I(2:2:end) 9
ans =
2 4 6
Comandos de Matlab y Simulink
>> A=imread('face.jpg');
>> B=A(1:280,170:380);
>> imshow(B)
Comandos de Matlab y Simulink
>> J=imread('Lena512x512.tif');
>> K=imcrop(J,[240 240 120 120]); % [xmin ymin width height]
>> imshow(K)
height
width
Comandos de Matlab y Simulink
>> imshow(img)
>> improfile % marque dos puntos en la imagen y Enter
>> grid
Primer punto
marcado con +
el mouse
Segundo punto +
marcado con
el mouse y pulse
Enter
Este comando puede ayudar en
determinar las características del
objeto a estudiar en base a los
componentes de color
Comandos de Matlab y Simulink
Si deseamos obtener el valor de un conjunto de pixeles en una imagen
>> img=imread('Lena512x512.tif’); 1
>> imshow(img)
>> pixel=impixel; % marque 5 puntos y enter 2
>> pixel 3
pixel =
4
168 111 67
168 111 68 5
165 112 70
176 126 83 enter
180 129 86
R G B
Comandos de Matlab y Simulink
Si un Webcam es de alta resolución, pero deseamos procesarla pero a un menor
tamaño, se puede sub-muestrear.
>> img=imread('Lena512x512.tif');
>> imshow(img)
>> imagensub=img(1:2:end,1:2:end,1:1:end);
>> imshow(imagensub)
>> [M N]=size(imagensub)
M=
256
256
N=
a: factor de escala
768
256x3
img(1:a:end,1:a:end,1:1:end);
Comandos de Matlab y Simulink
Deseamos ver los componentes de color de una imagen
>>Img=imread('bolargbk.jpg’);
>>imshow(Img)
>>imtool(Img)
clc;
clear all
close all
Img=imread('redflower.jpg');
%Img=imread('bolargbk.jpg');
figure(1),imshow(Img)
BN=rgb2gray(Img);
r=double(Img(:,:,1));
g=double(Img(:,:,2));
b=double(Img(:,:,3));
figure(2)
% Tratamiento para el ROJO
rojo=r-g-b;
subplot(1,3,1),imshow(rojo)
bin_rojo=rojo>25;
bin_rojo_filt=medfilt2(bin_rojo);
masc_r=1-bin_rojo_filt;
subplot(1,3,2),imshow(masc_r)
%rojo
imagen_roja=double(BN)/255;
imagen_verde=double(BN).*masc_r/255;
imagen_azul=double(BN).*masc_r/255;
bolargbk.jpg
Comandos de Matlab y Simulink
Imagen original
redflower.jpg
https://www.youtube.com/watch?v=pHGu9mbxMyI
Comandos de Matlab y Simulink
La empresa ha definido ya más de 1.000 colores Pantone únicos.
Los colores Pantone combinan hasta 15 pigmentos distintos,
incluyendo el color negro y el blanco. Son los colores ideales
para crear logotipos de marcas, empresas o diseño corporativo.
Traer un muestrario de
color Pantone y validar
el valor RGB correspon-
2012 2013 2014 2015 2016 2016
diente. Mandarina tango
Pantone 17-1463
Esmeralda
Pantone 17-5641
Orquídea radiante
Pantone 18-3224
Marsala
Pantone 18-1438
Azul serenity
Pantone 15-1919
Rosa cuarzo
Pantone 13-1520
Comandos de Matlab y Simulink
En caso de obtener los bordes de objetos de una imagen, entonces
clc, close all
img=imread('Lena512x512.tif');
imshow(img)
figure,imshow(imedge);
Comandos de Matlab y Simulink
clc, close all
img=imread('Lena512x512.tif');
imshow(img)
figure(2),imshow(imedge);
%--------------------- modificando el filtro
%I = imread('circuit.tif');
I = imread('Lena512x512.tif');
J = rgb2gray(I);
BW1 = edge(J,'prewitt');
BW2 = edge(J,'canny');
BW2C = 1-BW2;
figure, imshow(J)
figure, imshow(BW1)
figure, imshow(BW2)
figure, imshow(BW2C)
Comandos de Matlab y Simulink
clc, close all
img=imread('bjts.jpg'); Si deseamos contar una muestra de
subplot(2,2,1),imshow(img) % imagen original transistores BJT de un determinado
imgray=rgb2gray(img);
imbin=im2bw(img,0.5); empaquetado
subplot(2,2,2),imshow(imbin) % imagen binario
imbin2=not(imbin);
subplot(2,2,3),imshow(imbin2)
SE=strel('square',10);
imerosion=imerode(imbin2,SE);
subplot(2,2,4),imshow(imerosion)
imdilacion=imdilate(imerosion,SE);
imlabel=bwlabel(imdilacion,8);
n=max(max(imlabel))
n
n=
6
Comandos de Matlab y Simulink
figure(1)
imshow(img) % imagen original
imgray=rgb2gray(img);
textbin=im2bw(img,0.9);
figure(2)
subplot(2,2,1),imshow(textbin) % imagen binario
SE=strel('square',5);
texterosion=imerode(textbin,SE);
subplot(2,2,2),imshow(texterosion)
textdilacion=imdilate(texterosion,SE);
subplot(2,2,3),imshow(textdilacion)
%si el fondo es de color negro, entonces usar
% el comando not()
textfin=textdilacion;
subplot(2,2,4),imshow(textfin)
imwrite(textfin,'test1.png');
Comandos de Matlab y Simulink
Comandos de Matlab y Simulink
% EE368/CS232 Digital Image Processing
% Bernd Girod
% Department of Electrical Engineering, Stanford University
% Plot image
subplot(2, 4, 9 - numOfBit), imshow(quantizedImg);
if numOfBit == 1
name = [num2str(numOfBit) '-bit'];
else
name = [num2str(numOfBit) '-bits'];
end
title(name);
% Save image
imwrite(quantizedImg, ['Quantization_' name '.png'] );
end %end numOfBit
Comandos de Matlab y Simulink
Resultado del procesamiento digital de imagen a nivel de bits/pixel
Comandos de Matlab y Simulink
Simulink tiene el toolbox
Computer Vision System,
que permite construir
diagramas de bloque
para procesar sistemas
complejos en el procesamiento
digital de imágenes.
Comandos de Matlab y Simulink
Ejemplo típico para obtener y visualizar el histograma de una imagen cuya fuente de
información proviene de una webcam.
https://www.youtube.com/watch?v=PiDB6DK4MIg
Comandos de Matlab y Simulink
1
En la página de MathWorks
Se ingresa con una cuenta
y contraseña y luego
https://la.mathworks.com/help/supportpkg/u
sbwebcams/webcam-image-acquisition.html
Comandos de Matlab y Simulink
>>imaqhwinfo %devuelve la información de hardware y software disponibles: Adaptador de video instalado, versión de Matlab, Toolbox (nombre y versión)
ans =
struct with fields:
InstalledAdaptors: {'winvideo'}
MATLABVersion: '9.2 (R2017a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '5.2 (R2017a)'
>> imaqhwinfo('winvideo’,1) % Este adaptador soporta 5 formatos de video, pero podría cambiar este número según el modelo y marca usada
ans =
struct with fields:
DefaultFormat: 'YUY2_1280x1024'
DeviceFileSupported: 0
DeviceName: 'Sony Visual Communication Camera'
DeviceID: 1
VideoInputConstructor: 'videoinput('winvideo', 1)'
VideoDeviceConstructor: 'imaq.VideoDevice('winvideo', 1)'
SupportedFormats: {1×5 cell}
Comandos de Matlab y Simulink
Para construir el diagrama propuesto, de los siguientes toolboxes serán extraídas las
herramientas para la respectiva simulación.
Toolbox Block
Image Adquisition Toolbox Image Adquisition (para activar webcam)
Simulink
1 3 7
>>A = ones(240,256);
4
7 6
3 4 5
2 8
1
2 9
8
5
5 practica.m 9
function salida = practica(u)
num=1:256;
valor=240-(u*9000);
%salida=[valor';num'];
salida(:,1)=valor;
salida(:,2)=num;
end
Comandos de Matlab y Simulink
Comandos de Matlab y Simulink
Secuencia de construcción del sistema - histograma acumulada de una imagen
Comandos de Matlab y Simulink
practicaacum.m
function salida = practicaacum(u)
num=1:256;
va=0;
for v=1:256
H(v)=va+u(v);
va=H(v);
end
valor=240-(H*200);
%salida=[valor;num];
salida(:,1)=num;
salida(:,2)=valor;
end
Comandos de Matlab y Simulink
>> cam.SupportedFormats
ans =
'YUY2_1280x1024' 'YUY2_160x120'
'YUY2_176x144' 'YUY2_320x240' 'YUY2_640x480'
video=videoinput('winvideo',1,'YUY2_320x240’)
preview(video) %para activar la cámara
foto=getsnapshot(video); %para tomar la foto cámara
imshow(ycbcr2rgb(foto)) %muestra la foto
pause
closepreview(video); %desconecta la cámara
Identificación de objetos
Detección de bordes
MT420 Proyectos
Reconocimiento de
señaléticas o placas de
rodaje vehicular.
MT420 Proyectos
Estructuras mecánicas
para el diseño de exo-
esqueletos, a partir del
procesamiento de imágenes
de la columna vertebral.
Validación de llenado de
líquido en botellas de vidrio
MT420 Proyectos
Estimación de velocidad
según variación de contorno
del vehículo, según alejamiento
o acercamiento.
MT420 Proyectos
1. Perfil del trabajo (máximo tres páginas)
Titulo del trabajo
Authors (nombre, especialidad. Incluir correo electrónico)
Background (fondo del problema o resumen)
Goal (Objetivo)
Datasets and strategy (fuente de datos y estrategia para la implementación de la solución)
References (Referencias bibliográficas)
Matlab Simulink
Bibliografía
Procesamiento Digital de imágenes con Matlab y Simulink. Cuevas, Zaldívar, Pérez. Alfaomega
Digital Image Processing, Gonzalez, Woods. 3rd Edition. Pearson
Digital Image Processing Using MATLAB, Rafael C. Gonzalez, Richard E. Woods, Steven L.
Eddins. 2nd Edition. Gatesmark Publishing