SlideShare una empresa de Scribd logo
FACULTAD DE INGENIERÍA DE
PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA
ELECTRÓNICA
CURSO: LABORATORIO DE PROCESAMIENTO DIGITAL
DE IMÁGENES.
TEMA: DETECCION DEL ANGULO DE INCLINACION DE
UN OBJETO CON RESPECTO AL CENTRO DE
GRAVEDAD USANDO MATLAB EN TIEMPO
REAL.
ALUMNOS: AHUANLLA GONZALES, PEDRO JESUS
HORARIO: JUEVES 7:00-9:00 AM.
2014-A
SEGUIMIENTODE OBJETOS DE COLORES CONWEBCAM EN MATLAB
1.-Captura de Imágenes Mediante Cámara Conectadas a la Pc.
Resulta de suma utilidad para implementar algoritmos de visión o adquisición de imágenes en
tiempo real utilizando dispositivos simples y de bajo costo tales como las webcams.
Para este fin es necesario tener el toolbox ‘Image Acquisition’.
El toolbox incluye la herramienta Image Acquisition tool ‘imaqtool’ que se utilizara
posteriormente.
2.-Comandos a utilizar.
Imaqhwinfo
Devuelve lainformación del hardware y software disponibles, tales como: Adaptador de
video instalado, versión de Matlab, Toolbox (nombre y versión).
Imaqhwinfo (‘adaptor’)
Donde adaptor es el nombre del adaptador instalado, por lo general suele ser winvideo.
Este comando devuelve información relacionada al adaptador.
Imaqhwinfo (‘adaptor’, DeviceID)
Donde DeviceIDesel IDdel dispositivoautilizarobtenidoconel comandoanterior. Si solo
se cuenta con un dispositivo conectado el DeviceID será 1. Este comando muestra
información del dispositivo conectado (cámara).
El adaptador instalado es ‘winvideo’.
Hay un dispositivo de adquisición de imágenes instalado (DeviceID).
Este dispositivo instalado es una webcam ‘TOSHIBA Web Camera - HP’.
Además soporta 7 formatos de adquisición. Formato por
defecto:’YUY2_128X1024’.
3.-Coneccion del Hardware.
1.1.- Conecte el dispositivo de adquisición de imágenes al PC (En nuestro caso es el de la
misma laptop).-
4.-Marco Teórico.
Procesamientode imágenesenMatlab.
¿Qué compone una imagen?
Cada imagense compone de unamatrizde MXN pixeles(contracciónde ‘elementode imagen’)
con M filasy N columnasde pixeles.Cadapixelcontiene unciertovalorde rojo,verde yazul.La
variaciónde estosvaloresparael rojo,verde,azul (RGB) podemosconseguircasi cualquiercolor.
 Almacenamientode imágenesenMatlab.
 Deteccionde color
El formatoRGB es un métodopracticopara representarimágenesen color. Matlab crea
tresmatrices(otresmatricesde MXN) con cada matriz que representaloscomponentes
normalizadosde rojo,verde oazul para leeryalmacenarcada uno de losfotogramas del
video.El colorde cualquierpixel se determinaporlacombinaciónde valoresAzul Rojo
Verde yalmacenadaentresmatricesenla ubicaciónde ese pixel.AsícomoMatlab lee y
manipulaarchivosjpg.
6.-Codigoen Matlab.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
close all;clear all;clc;
% primero se captura un stream de video usando videoinput, con argumento
%de winvideo, numero de dispositivo y formato de la camara, si no sabes
usa la
%funcion imaqtool para averiguarlo es YUY o RGB
vid=videoinput('winvideo',1,'YUY2_640x480');
%640x480 160x120
% Se configura las opciones de adquision de video
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb')
vid.FrameGrabInterval = 5;
%framegrabinterval significa que tomara cada 5 frame del stream de video
adquirida
%con start(vid) se activa la adquisicion, pero todavia se toma la primera
foto
start(vid)
% creamos un bucle que puede ser while always o while true en este caso
%y como mi compu es una netbook trucha(trucha=cagada=lenta=barata)
%hago que despues de 100 frames adquiridos se salga del bucle para evitar
colgadas
while(vid.FramesAcquired<=100)
% se toma una snapshot del stream y se la almacena en data para trabajar
mas
%facil
data = getsnapshot(vid);
% ahora vamos a reconocer el color rojo en tiempo real
% tenemos que extraer el color rojo
% de la imagen en escala de grises de la imagen adquirida en data
diff_im = imsubtract(data(:,:,1), rgb2gray(data));
%imsubstract sirve para sacar algun valor constante de una imagen, usamos
como
%argumento el array de data y la funcion rgb2gray de data
%se usa medfilt2 para filtrar la senial del ruido
diff_im = medfilt2(diff_im, [3 3]);
% Convertir la imagen en escala de grises a una imagen binaria.
diff_im = im2bw(diff_im,0.18);
% para determinar el tamanio a reconocer se usa bwareopen para descartar
%imagen de rojo de menos de 300 pixels
diff_im = bwareaopen(diff_im,300);
% Etiquetamos los elementos conectados en la imagen
bw = bwlabel(diff_im, 8);
% Ahora hacemos el analisis del "objeto" detectado(que solo son pixels
rojos)
%agrupados de mas de 300
% onfiguramos la region etiquetada
stats = regionprops(bw, 'BoundingBox', 'Centroid');
% centro de gravedad
[N M]= size(bw);
M00=0;M10=0;M01=0;
M20=0;M02=0;;M11=0;
for i=1:N
for j=1:M
if(bw(i,j)==1) %(SI ES UNA IMAGEN BLANCA)
M00=M00+1; % ENTONCES
M10=M10+j; % SUMATORIA DE LOS MOMENTOS DE LA IMAGEN
M01=M01+i;
M20=M20+j*j; % VER LA ECUACION DE LOS MOMENNTOS CENTRALES DE
ORDEN PQ
M02=M02+i*i;
M11=M11+i*j;
end
end
end
cx=M10/M00;
cy=M01/M00;
disp(cx);
disp(cy);
u00=M00; % ver ecuacion en copias de momentos centrales en forma
resumida,
u20=M20-cx*M10;% ver ecuacion en copias de momentos centrales en forma
resumida,
u02=M02-cy*M01;% ver ecuacion en copias de momentos centrales en forma
resumida,
u11=M11-cy*M10;% ver ecuacion en copias de momentos centrales en forma
resumida,
hold on
plot(cx,cy,'-m+');
%eje mayor
l=sqrt((u20+u02+sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2))
%eje
% menor
w=sqrt((u20+u02-sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2))
%orientcion eje mayor
th=0.5*atan2(2*u11,(u20-u02))% atan arco tangente en cuatro cuadrantes
% coordenadas eje mayor
p1=[cx+0.5*l*cos(th) cy+0.5*l*sin(th)];
p2=[cx-0.5*l*cos(th) cy-0.5*l*sin(th)];
%coordenadas eje menor
p3=[cx+0.5*w*sin(th) cy-0.5*w*cos(th)];
p4=[cx-0.5*w*sin(th) cy+0.5*w*cos(th)];
line([p1(1,1) p2(1,1)],[p1(1,2) p2(1,2)]); % une con una linea 2 puntos
line([p3(1,1) p4(1,1)],[p3(1,2) p4(1,2)]); % une con una linea 2 puntos
disp(th*180/pi)
cx=M10/M00;
cy=M01/M00;
disp(cx);
disp(cy);
u00=M00; % ver ecuacion en copias de momentos centrales en forma
resumida,
u20=M20-cx*M10;% ver ecuacion en copias de momentos centrales en forma
resumida,
u02=M02-cy*M01;% ver ecuacion en copias de momentos centrales en forma
resumida,
u11=M11-cy*M10;% ver ecuacion en copias de momentos centrales en forma
resumida,
hold on
plot(cx,cy,'rs');
%eje mayor
l=sqrt((u20+u02+sqrt((u20-u02)^2+4*u11^2))/(u00/2))
%eje menor
w=sqrt((u20+u02-sqrt((u20-u02)^2+4*u11^2))/(u00/2))
%orientcion eje mayor
th=0.5*atan2(2*u11,(u20-u02))% atan arco tangente en cuatro cuadrantes
p1=[cx+0.5*l*cos(th) cy+0.5*l*sin(th)];
p2=[cx-0.5*l*cos(th) cy-0.5*l*sin(th)];
p3=[cx+0.5*w*sin(th) cy-0.5*w*cos(th)];
p4=[cx-0.5*w*sin(th) cy+0.5*w*cos(th)];
line([p1(1,1) p2(1,1)],[p1(1,2) p2(1,2)]); % une con una linea 2 puntos
line([p3(1,1) p4(1,1)],[p3(1,2) p4(1,2)]);% une con una linea 2 puntos
disp(th*180/pi)
%dispth
% mostramos la imagen
imshow(data)
hold on
%este es un bucle para encerrar el objeto rojo en un rectangulp y una
cruz en el
%centroide(solo es programacion basica de matlab)
for object = 1:length(stats)
bb = stats(object).BoundingBox;
bc = stats(object).Centroid;
rectangle('Position',bb,'EdgeColor','r','LineWidth',2)
plot(bc(1),bc(2), '-m+')
%a=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1))), ' Y: ',
num2str(round(bc(2)))));
%set(a, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12,
'Color', 'yellow');
end
hold off
end
% aqui terminan los 2 bucles
% detenemos la captura
stop(vid);
%FLUSHDATA remueve la imagen del motor de adquisicion y la almacena en el
buffer
flushdata(vid);
clear all
% borramos todo(como en cualquier programa)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7.-Concluciones.
 Hay que teneren cuentadiversospatronesporque cuandovaríala luzóseadisminuye o
aumentanopodría llegara reconoceral objeto.
 Algomuyimportante esque antesde empezartodotenemosque asegurarnosde que este
instaladoel toolbox ‘ImageAcquisition’. Yaque sin ellonose podrállevara cabo este
trabajo.
 El trabajoen realidaderaseguimientocualquieraque fuese el objeto,peroparamayor
simplicidadoptamosenescogerunpatrónenrealidadexistenmuchocomoporejemplo
identificarunobjetoporcolor,forma, dimensión,etc.Nosotrosoptamosidentificarun
objetoporel color.
8.-Bibliografia
http://cnx.org/contents/9061fd10-2fec-426d-a107-
8272eb37ab92@2/Webcam_Color_Tracking_in_Matla
http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(procesamiento_de_im%C3%A1genes)
http://alojamientos.us.es/gtocoma/pid/tema4.pdf

Más contenido relacionado

Similar a 282361940-Seguimiento-de-Objetos-de-Colores-Con-Webcam-en-Matlab.docx

Análisis de imágenes: reconocimiento de letras
Análisis de imágenes: reconocimiento de letrasAnálisis de imágenes: reconocimiento de letras
Análisis de imágenes: reconocimiento de letras
Sandra Lucia
 
Sistema de visión artificial para el reconocimiento y
Sistema de visión artificial para el reconocimiento ySistema de visión artificial para el reconocimiento y
Sistema de visión artificial para el reconocimiento y
viisonartificial2012
 
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágenArchivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Job Isaias Cach Cach
 
Conteo globulos rbustamante
Conteo globulos rbustamanteConteo globulos rbustamante
Conteo globulos rbustamante
miocid0777
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
gerardoarbito
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2
jcbp_peru
 
Contenedoras de dos dimensiones
Contenedoras de dos dimensionesContenedoras de dos dimensiones
Contenedoras de dos dimensiones
Robinson Jiménez
 
matlab
matlabmatlab
matlab
Jessy AG
 
Computacion
ComputacionComputacion
Computacion
norbeyvito
 
Documento completo
Documento completoDocumento completo
Documento completo
Ediee Dk
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2
jcbp_peru
 
Deber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-niseDeber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-nise
ALEX PORRAS
 
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLABUtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
dpatriciocastillom
 
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACInforme proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Andres Ccolque Sandy
 
Morfología de la imagen digital
Morfología de la imagen digitalMorfología de la imagen digital
Morfología de la imagen digital
elprincipitofoto
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informática
Celiagg18
 
Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNISTReconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
Emilio Garcia
 
Criterio de bode y nyquist matlab
Criterio de bode y nyquist matlabCriterio de bode y nyquist matlab
Criterio de bode y nyquist matlab
Ale Perez Ortiz
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
Sebastian Arbelaez
 
Las matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenesLas matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenes
jorquera
 

Similar a 282361940-Seguimiento-de-Objetos-de-Colores-Con-Webcam-en-Matlab.docx (20)

Análisis de imágenes: reconocimiento de letras
Análisis de imágenes: reconocimiento de letrasAnálisis de imágenes: reconocimiento de letras
Análisis de imágenes: reconocimiento de letras
 
Sistema de visión artificial para el reconocimiento y
Sistema de visión artificial para el reconocimiento ySistema de visión artificial para el reconocimiento y
Sistema de visión artificial para el reconocimiento y
 
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágenArchivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágen
 
Conteo globulos rbustamante
Conteo globulos rbustamanteConteo globulos rbustamante
Conteo globulos rbustamante
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2
 
Contenedoras de dos dimensiones
Contenedoras de dos dimensionesContenedoras de dos dimensiones
Contenedoras de dos dimensiones
 
matlab
matlabmatlab
matlab
 
Computacion
ComputacionComputacion
Computacion
 
Documento completo
Documento completoDocumento completo
Documento completo
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2
 
Deber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-niseDeber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-nise
 
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLABUtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
 
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACInforme proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
 
Morfología de la imagen digital
Morfología de la imagen digitalMorfología de la imagen digital
Morfología de la imagen digital
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informática
 
Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNISTReconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
 
Criterio de bode y nyquist matlab
Criterio de bode y nyquist matlabCriterio de bode y nyquist matlab
Criterio de bode y nyquist matlab
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 
Las matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenesLas matemáticas en el retoque digital de imágenes
Las matemáticas en el retoque digital de imágenes
 

Último

INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
yamilbailonw
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
JaimmsArthur
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
brandonsinael
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
simbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspecciónsimbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspección
HarofHaro
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
DiegoAlexanderChecaG
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
ronnyrocha223
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
sebastianpech108
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
LuisAngelGuarnizoBet
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
Augusto César Dávila Callupe
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
elsanti003
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 

Último (20)

INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptxS09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
S09 PBM-HEMORRAGIAS 2021-I Grabada 1.pptx
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
simbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspecciónsimbologia y normas de soldadura para su inspección
simbologia y normas de soldadura para su inspección
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 

282361940-Seguimiento-de-Objetos-de-Colores-Con-Webcam-en-Matlab.docx

  • 1. FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA CURSO: LABORATORIO DE PROCESAMIENTO DIGITAL DE IMÁGENES. TEMA: DETECCION DEL ANGULO DE INCLINACION DE UN OBJETO CON RESPECTO AL CENTRO DE GRAVEDAD USANDO MATLAB EN TIEMPO REAL. ALUMNOS: AHUANLLA GONZALES, PEDRO JESUS HORARIO: JUEVES 7:00-9:00 AM. 2014-A
  • 2. SEGUIMIENTODE OBJETOS DE COLORES CONWEBCAM EN MATLAB 1.-Captura de Imágenes Mediante Cámara Conectadas a la Pc. Resulta de suma utilidad para implementar algoritmos de visión o adquisición de imágenes en tiempo real utilizando dispositivos simples y de bajo costo tales como las webcams. Para este fin es necesario tener el toolbox ‘Image Acquisition’. El toolbox incluye la herramienta Image Acquisition tool ‘imaqtool’ que se utilizara posteriormente. 2.-Comandos a utilizar. Imaqhwinfo Devuelve lainformación del hardware y software disponibles, tales como: Adaptador de video instalado, versión de Matlab, Toolbox (nombre y versión). Imaqhwinfo (‘adaptor’) Donde adaptor es el nombre del adaptador instalado, por lo general suele ser winvideo. Este comando devuelve información relacionada al adaptador. Imaqhwinfo (‘adaptor’, DeviceID) Donde DeviceIDesel IDdel dispositivoautilizarobtenidoconel comandoanterior. Si solo se cuenta con un dispositivo conectado el DeviceID será 1. Este comando muestra información del dispositivo conectado (cámara).
  • 3. El adaptador instalado es ‘winvideo’. Hay un dispositivo de adquisición de imágenes instalado (DeviceID). Este dispositivo instalado es una webcam ‘TOSHIBA Web Camera - HP’. Además soporta 7 formatos de adquisición. Formato por defecto:’YUY2_128X1024’. 3.-Coneccion del Hardware. 1.1.- Conecte el dispositivo de adquisición de imágenes al PC (En nuestro caso es el de la misma laptop).- 4.-Marco Teórico. Procesamientode imágenesenMatlab. ¿Qué compone una imagen? Cada imagense compone de unamatrizde MXN pixeles(contracciónde ‘elementode imagen’) con M filasy N columnasde pixeles.Cadapixelcontiene unciertovalorde rojo,verde yazul.La variaciónde estosvaloresparael rojo,verde,azul (RGB) podemosconseguircasi cualquiercolor.  Almacenamientode imágenesenMatlab.
  • 4.  Deteccionde color El formatoRGB es un métodopracticopara representarimágenesen color. Matlab crea tresmatrices(otresmatricesde MXN) con cada matriz que representaloscomponentes normalizadosde rojo,verde oazul para leeryalmacenarcada uno de losfotogramas del video.El colorde cualquierpixel se determinaporlacombinaciónde valoresAzul Rojo Verde yalmacenadaentresmatricesenla ubicaciónde ese pixel.AsícomoMatlab lee y manipulaarchivosjpg.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. 6.-Codigoen Matlab. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% close all;clear all;clc; % primero se captura un stream de video usando videoinput, con argumento %de winvideo, numero de dispositivo y formato de la camara, si no sabes usa la %funcion imaqtool para averiguarlo es YUY o RGB vid=videoinput('winvideo',1,'YUY2_640x480'); %640x480 160x120 % Se configura las opciones de adquision de video set(vid, 'FramesPerTrigger', Inf); set(vid, 'ReturnedColorspace', 'rgb') vid.FrameGrabInterval = 5; %framegrabinterval significa que tomara cada 5 frame del stream de video adquirida %con start(vid) se activa la adquisicion, pero todavia se toma la primera foto start(vid) % creamos un bucle que puede ser while always o while true en este caso %y como mi compu es una netbook trucha(trucha=cagada=lenta=barata) %hago que despues de 100 frames adquiridos se salga del bucle para evitar colgadas while(vid.FramesAcquired<=100) % se toma una snapshot del stream y se la almacena en data para trabajar mas %facil data = getsnapshot(vid); % ahora vamos a reconocer el color rojo en tiempo real % tenemos que extraer el color rojo % de la imagen en escala de grises de la imagen adquirida en data diff_im = imsubtract(data(:,:,1), rgb2gray(data)); %imsubstract sirve para sacar algun valor constante de una imagen, usamos como
  • 10. %argumento el array de data y la funcion rgb2gray de data %se usa medfilt2 para filtrar la senial del ruido diff_im = medfilt2(diff_im, [3 3]); % Convertir la imagen en escala de grises a una imagen binaria. diff_im = im2bw(diff_im,0.18); % para determinar el tamanio a reconocer se usa bwareopen para descartar %imagen de rojo de menos de 300 pixels diff_im = bwareaopen(diff_im,300); % Etiquetamos los elementos conectados en la imagen bw = bwlabel(diff_im, 8); % Ahora hacemos el analisis del "objeto" detectado(que solo son pixels rojos) %agrupados de mas de 300 % onfiguramos la region etiquetada stats = regionprops(bw, 'BoundingBox', 'Centroid'); % centro de gravedad [N M]= size(bw); M00=0;M10=0;M01=0; M20=0;M02=0;;M11=0; for i=1:N for j=1:M if(bw(i,j)==1) %(SI ES UNA IMAGEN BLANCA) M00=M00+1; % ENTONCES M10=M10+j; % SUMATORIA DE LOS MOMENTOS DE LA IMAGEN M01=M01+i; M20=M20+j*j; % VER LA ECUACION DE LOS MOMENNTOS CENTRALES DE ORDEN PQ M02=M02+i*i; M11=M11+i*j; end end end cx=M10/M00; cy=M01/M00; disp(cx); disp(cy); u00=M00; % ver ecuacion en copias de momentos centrales en forma resumida, u20=M20-cx*M10;% ver ecuacion en copias de momentos centrales en forma resumida, u02=M02-cy*M01;% ver ecuacion en copias de momentos centrales en forma resumida, u11=M11-cy*M10;% ver ecuacion en copias de momentos centrales en forma resumida, hold on plot(cx,cy,'-m+'); %eje mayor l=sqrt((u20+u02+sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2)) %eje % menor w=sqrt((u20+u02-sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2)) %orientcion eje mayor th=0.5*atan2(2*u11,(u20-u02))% atan arco tangente en cuatro cuadrantes % coordenadas eje mayor p1=[cx+0.5*l*cos(th) cy+0.5*l*sin(th)];
  • 11. p2=[cx-0.5*l*cos(th) cy-0.5*l*sin(th)]; %coordenadas eje menor p3=[cx+0.5*w*sin(th) cy-0.5*w*cos(th)]; p4=[cx-0.5*w*sin(th) cy+0.5*w*cos(th)]; line([p1(1,1) p2(1,1)],[p1(1,2) p2(1,2)]); % une con una linea 2 puntos line([p3(1,1) p4(1,1)],[p3(1,2) p4(1,2)]); % une con una linea 2 puntos disp(th*180/pi) cx=M10/M00; cy=M01/M00; disp(cx); disp(cy); u00=M00; % ver ecuacion en copias de momentos centrales en forma resumida, u20=M20-cx*M10;% ver ecuacion en copias de momentos centrales en forma resumida, u02=M02-cy*M01;% ver ecuacion en copias de momentos centrales en forma resumida, u11=M11-cy*M10;% ver ecuacion en copias de momentos centrales en forma resumida, hold on plot(cx,cy,'rs'); %eje mayor l=sqrt((u20+u02+sqrt((u20-u02)^2+4*u11^2))/(u00/2)) %eje menor w=sqrt((u20+u02-sqrt((u20-u02)^2+4*u11^2))/(u00/2)) %orientcion eje mayor th=0.5*atan2(2*u11,(u20-u02))% atan arco tangente en cuatro cuadrantes p1=[cx+0.5*l*cos(th) cy+0.5*l*sin(th)]; p2=[cx-0.5*l*cos(th) cy-0.5*l*sin(th)]; p3=[cx+0.5*w*sin(th) cy-0.5*w*cos(th)]; p4=[cx-0.5*w*sin(th) cy+0.5*w*cos(th)]; line([p1(1,1) p2(1,1)],[p1(1,2) p2(1,2)]); % une con una linea 2 puntos line([p3(1,1) p4(1,1)],[p3(1,2) p4(1,2)]);% une con una linea 2 puntos disp(th*180/pi) %dispth % mostramos la imagen imshow(data) hold on %este es un bucle para encerrar el objeto rojo en un rectangulp y una cruz en el %centroide(solo es programacion basica de matlab) for object = 1:length(stats) bb = stats(object).BoundingBox;
  • 12. bc = stats(object).Centroid; rectangle('Position',bb,'EdgeColor','r','LineWidth',2) plot(bc(1),bc(2), '-m+') %a=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1))), ' Y: ', num2str(round(bc(2))))); %set(a, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12, 'Color', 'yellow'); end hold off end % aqui terminan los 2 bucles % detenemos la captura stop(vid); %FLUSHDATA remueve la imagen del motor de adquisicion y la almacena en el buffer flushdata(vid); clear all % borramos todo(como en cualquier programa) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 7.-Concluciones.  Hay que teneren cuentadiversospatronesporque cuandovaríala luzóseadisminuye o aumentanopodría llegara reconoceral objeto.  Algomuyimportante esque antesde empezartodotenemosque asegurarnosde que este instaladoel toolbox ‘ImageAcquisition’. Yaque sin ellonose podrállevara cabo este trabajo.  El trabajoen realidaderaseguimientocualquieraque fuese el objeto,peroparamayor simplicidadoptamosenescogerunpatrónenrealidadexistenmuchocomoporejemplo identificarunobjetoporcolor,forma, dimensión,etc.Nosotrosoptamosidentificarun objetoporel color. 8.-Bibliografia http://cnx.org/contents/9061fd10-2fec-426d-a107- 8272eb37ab92@2/Webcam_Color_Tracking_in_Matla http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(procesamiento_de_im%C3%A1genes) http://alojamientos.us.es/gtocoma/pid/tema4.pdf