Este documento presenta el código en MATLAB para detectar el ángulo de inclinación de un objeto con respecto a su centro de gravedad usando una cámara web en tiempo real. Primero captura imágenes de la cámara y extrae el color rojo. Luego calcula los momentos centrales para determinar el centroide y los ejes mayor y menor, a partir de los cuales se obtiene el ángulo de inclinación. Finalmente, muestra gráficamente los resultados y las conclusiones sobre la detección de color y necesidad del toolbox de adquisición
Este documento describe la aplicación de matrices en el procesamiento de imágenes digitales. Explica conceptos básicos de matrices y sus operaciones. Luego, describe cómo las imágenes digitales pueden representarse mediante matrices y cómo varios filtros como ajuste de canales, brillo, inversión de colores y escala de grises se pueden aplicar a través de operaciones con matrices. Finalmente, menciona el software desarrollado para aplicar estos filtros mediante procesamiento matricial de imágenes.
El documento describe el diseño e implementación de una aplicación desarrollada en Matlab para analizar radiografías. La aplicación tiene tres partes: una ventana principal para visualizar radiografías, un menú lateral y un área inferior para mostrar resultados. La sección de implementación detalla el cálculo del índice de Taguchi y análisis de texturas usando funciones de Matlab como imcrop, edge y hough.
Este documento introduce el programa MATLAB y sus aplicaciones. Explica que MATLAB es un programa de cálculo numérico y visualización de datos que se usa ampliamente en universidades. Describe cómo crear variables, vectores, matrices y funciones, y cómo realizar operaciones matemáticas, gráficas y cálculo numérico en MATLAB. El documento proporciona numerosos ejemplos de código MATLAB.
Este documento describe un método para corregir errores en una imagen satelital causados por fallas en los detectores del sensor. El método implica reemplazar los valores faltantes en píxeles o líneas defectuosos con el promedio de los valores de los píxeles vecinos, utilizando una matriz de 3x3 píxeles. El documento guía al lector a través de los pasos para cargar la imagen, identificar las áreas defectuosas, aplicar la corrección mediante el uso de una herramienta de análisis focal en ERDAS
Este documento presenta los resultados de procedimientos de procesamiento digital de imágenes realizados en MATLAB. Se importaron dos imágenes, una de alto contraste y otra de bajo contraste, y se mostraron en escala de grises. Luego, se halló su complemento, la transformada de Fourier discreta bidimensional y el histograma. Finalmente, se aplicó ecualización del histograma mediante la función Gamma para mejorar el contraste.
Este documento describe los pasos básicos para procesar imágenes en MATLAB. Explica cómo leer imágenes, representarlas como matrices, obtener su tamaño y visualizarlas. También cubre cómo modificar pixeles, submuestrear imágenes, aplicar filtros como promedio y mediana, detectar bordes, y binarizar imágenes. El objetivo principal es proporcionar una introducción a las herramientas básicas de MATLAB para procesamiento digital de imágenes.
Este documento describe los conceptos y comandos básicos para el procesamiento de imágenes en MATLAB. Explica cómo leer y representar imágenes, obtener el tamaño y valores de pixeles, editar y mostrar imágenes, aplicar transformaciones como submuestreo y filtrado mediante convolución, y realizar detección de bordes y binarización.
Este documento presenta una introducción al procesamiento de imágenes en Matlab y Octave. Explica cómo cargar, mostrar y normalizar imágenes, y realizar operaciones básicas como obtener canales individuales. Luego propone ejercicios para manipular partes de imágenes, intercambiar cuadrantes, y representar imágenes a partir de funciones. Finalmente, introduce operaciones de matrices que pueden aplicarse a imágenes, como espejados, y ejercicios de rotación y reescalado.
Este documento describe la aplicación de matrices en el procesamiento de imágenes digitales. Explica conceptos básicos de matrices y sus operaciones. Luego, describe cómo las imágenes digitales pueden representarse mediante matrices y cómo varios filtros como ajuste de canales, brillo, inversión de colores y escala de grises se pueden aplicar a través de operaciones con matrices. Finalmente, menciona el software desarrollado para aplicar estos filtros mediante procesamiento matricial de imágenes.
El documento describe el diseño e implementación de una aplicación desarrollada en Matlab para analizar radiografías. La aplicación tiene tres partes: una ventana principal para visualizar radiografías, un menú lateral y un área inferior para mostrar resultados. La sección de implementación detalla el cálculo del índice de Taguchi y análisis de texturas usando funciones de Matlab como imcrop, edge y hough.
Este documento introduce el programa MATLAB y sus aplicaciones. Explica que MATLAB es un programa de cálculo numérico y visualización de datos que se usa ampliamente en universidades. Describe cómo crear variables, vectores, matrices y funciones, y cómo realizar operaciones matemáticas, gráficas y cálculo numérico en MATLAB. El documento proporciona numerosos ejemplos de código MATLAB.
Este documento describe un método para corregir errores en una imagen satelital causados por fallas en los detectores del sensor. El método implica reemplazar los valores faltantes en píxeles o líneas defectuosos con el promedio de los valores de los píxeles vecinos, utilizando una matriz de 3x3 píxeles. El documento guía al lector a través de los pasos para cargar la imagen, identificar las áreas defectuosas, aplicar la corrección mediante el uso de una herramienta de análisis focal en ERDAS
Este documento presenta los resultados de procedimientos de procesamiento digital de imágenes realizados en MATLAB. Se importaron dos imágenes, una de alto contraste y otra de bajo contraste, y se mostraron en escala de grises. Luego, se halló su complemento, la transformada de Fourier discreta bidimensional y el histograma. Finalmente, se aplicó ecualización del histograma mediante la función Gamma para mejorar el contraste.
Este documento describe los pasos básicos para procesar imágenes en MATLAB. Explica cómo leer imágenes, representarlas como matrices, obtener su tamaño y visualizarlas. También cubre cómo modificar pixeles, submuestrear imágenes, aplicar filtros como promedio y mediana, detectar bordes, y binarizar imágenes. El objetivo principal es proporcionar una introducción a las herramientas básicas de MATLAB para procesamiento digital de imágenes.
Este documento describe los conceptos y comandos básicos para el procesamiento de imágenes en MATLAB. Explica cómo leer y representar imágenes, obtener el tamaño y valores de pixeles, editar y mostrar imágenes, aplicar transformaciones como submuestreo y filtrado mediante convolución, y realizar detección de bordes y binarización.
Este documento presenta una introducción al procesamiento de imágenes en Matlab y Octave. Explica cómo cargar, mostrar y normalizar imágenes, y realizar operaciones básicas como obtener canales individuales. Luego propone ejercicios para manipular partes de imágenes, intercambiar cuadrantes, y representar imágenes a partir de funciones. Finalmente, introduce operaciones de matrices que pueden aplicarse a imágenes, como espejados, y ejercicios de rotación y reescalado.
Análisis de imágenes: reconocimiento de letrasSandra Lucia
Este documento presenta una metodología para reconocer letras T y Y mediante el análisis de imágenes y la detección de líneas usando la transformada de Hough. La imagen es procesada, segmentada y sus características extraídas para clasificar las letras basado en el número de líneas detectadas, siendo 4 líneas para una T y más de 4 para una Y. Los resultados muestran que el método funciona de manera robusta para reconocer estas letras.
Este documento describe un sistema de visión artificial para el reconocimiento y manipulación de objetos utilizando un brazo robot. El sistema incluye una cámara, tarjeta de captura de video e interfaz con el brazo robot. La imagen capturada es procesada mediante conversión a escala de grises, umbralización, erosión, dilatación y etiquetado para segmentar los objetos. Luego, una red neuronal entrenada clasifica los objetos y guía las acciones del brazo robot.
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágenJob Isaias Cach Cach
El documento describe comandos de Matlab utilizados para el procesamiento de imágenes, incluyendo cómo cargar imágenes, visualizar imágenes, realizar operaciones con matrices, usar bucles for y condicionales if, aplicar transformadas como la FFT, y utilizar filtros y otras funciones como histograma e igualación de histograma.
Este documento describe el desarrollo de un algoritmo para contar glóbulos rojos mediante procesamiento digital de imágenes. El algoritmo utiliza una cámara conectada a un microscopio para capturar imágenes de muestras de sangre y luego aplica procesos como conversión a escala de grises, filtrado, segmentación y transformada de Hough para detectar y contar las células. Los resultados muestran que el algoritmo automatiza el conteo manual con un error promedio de solo el 4%.
1) El documento introduce MATLAB, un software de ingeniería para cálculo numérico y gráficos. 2) Explica funciones básicas como escalares, vectores, matrices, operaciones matemáticas y funciones predefinidas. 3) MATLAB es útil para álgebra lineal, análisis numérico y otras aplicaciones en ciencia e ingeniería.
Este documento presenta el laboratorio 2 sobre procesamiento de imágenes y visión artificial. Incluye objetivos como manipular el histograma, ecualizar imágenes, aplicar corrección gamma, realizar transformaciones morfológicas y filtrado espacial. Se deben desarrollar funciones en Matlab para cada procedimiento y responder un cuestionario creando funciones adicionales para comparar con funciones de Matlab. El informe final debe incluir resultados, procedimientos y respuestas al cuestionario en Word, referenciando líneas de código.
Este documento describe los requisitos para una aplicación que permite cargar y mostrar imágenes BMP, así como aplicar seis transformaciones a las imágenes, incluyendo negativo, flip vertical, binarización, pixelamiento, escala de grises y convolución. Se debe mostrar imágenes de hasta 400x300 píxeles y capturar parámetros como umbrales y matrices de convolución para algunas transformaciones.
Este documento presenta un tutorial sobre el uso de MATLAB para aplicaciones numéricas. Introduce conceptos básicos como variables, vectores, matrices, funciones, polinomios y representación gráfica. Explica cómo crear y manipular este tipo de objetos matemáticos en MATLAB así como realizar cálculos y visualizaciones numéricas. El tutorial contiene numerosos ejemplos paso a paso para ilustrar el uso de las principales funciones y comandos de MATLAB.
Matlab es un entorno de cómputo que permite realizar cálculos matemáticos, estadísticos y gráficos. Ofrece herramientas para álgebra lineal, cálculo, estadística, procesamiento de señales y simulación. Permite realizar operaciones matemáticas, lógicas y comparaciones, así como manipular vectores y matrices.
Este documento describe un nuevo algoritmo llamado "Eigenfaces de Imagen Reducida" para el reconocimiento automático de rostros. El algoritmo reduce el tamaño de las imágenes antes de aplicar el método de "Eigenfaces" para mejorar el porcentaje de reconocimiento. El documento compara los resultados del nuevo método con dos versiones del método original de "Eigenfaces" usando una base de datos de rostros. Los resultados muestran que el nuevo método logra un mayor porcentaje de reconocimiento y puede trabajar con conjuntos de imágenes más grandes
Este documento presenta el laboratorio 2 sobre procesamiento de imágenes y visión artificial. El objetivo es binarizar imágenes, realizar zoom, manipular histograma, aplicar corrección gamma, dilatación y erosión, apertura y cierre, y detección de regiones. Se pide desarrollar funciones en Matlab para estos procesos y comparar resultados con funciones existentes. El informe debe incluir imágenes con comentarios y conclusiones sobre los resultados obtenidos.
El documento presenta los ejercicios resueltos en MATLAB del Capítulo II del libro Sistemas de Control para la Ingeniería de Norman Nise. Se definen funciones de transferencia y polinomios, y se obtienen sus raíces y se multiplican polinomios utilizando comandos de MATLAB. También se expanden funciones en fracciones parciales y se resuelve un ejemplo utilizando las herramientas matemáticas simbólicas de MATLAB.
Este documento presenta conceptos básicos sobre imágenes digitales y su procesamiento en MATLAB. Introduce cómo las imágenes se representan como matrices en MATLAB y explica funciones para leer y escribir imágenes desde archivos. Luego describe operaciones básicas de procesamiento de imágenes como filtrado, detección de bordes, umbralización y transformaciones morfológicas. Finalmente presenta la herramienta vfm para captura de imágenes.
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACAndres Ccolque Sandy
Este código en MATLAB procesa una imagen para resaltar el color rojo sobre el gris mediante 6 etapas: 1) carga la imagen original, 2) la convierte a escala de grises, 3) extrae la banda roja, 4) aplica un filtro de mediana a la banda roja, 5) corrige el contraste de la banda roja, 6) crea una máscara alrededor de un punto rojo seleccionado y 7) combina las bandas para el efecto final atenuando los grises. Al hacer clic solo en el rojo de la
Este documento resume los conceptos clave de las imágenes digitales. Explica que una imagen digital está compuesta de píxeles y define elementos como la resolución, tamaño, modos de color y formatos comunes. También describe los métodos de representación de imágenes como mapas de bits y gráficos vectoriales, y explica la diferencia entre escalado y remuestreo.
Este documento introduce diferentes métodos para representar información numérica en una computadora, incluyendo números de punto fijo, números reales y caracteres. Explica que la información debe codificarse de forma sistemática usando patrones de ceros y unos. Luego, describe la representación de números de punto fijo, donde todos los números tienen la misma cantidad de dígitos y la coma decimal está en la misma posición. Finalmente, analiza conceptos como el rango y la precisión de esta representación, y cómo la ley asociativa del álgebra no siempre se cumple debido a las limitaciones de
Este documento describe cómo usar MATLAB para generar diagramas de Bode y Nyquist. Explica que MATLAB puede usarse para simular sistemas de control mediante el cálculo de funciones de transferencia y la generación gráfica de los diagramas de Bode y Nyquist. Luego muestra cómo usar los comandos "bode" y "nyquist" de MATLAB para generar estos diagramas a partir de funciones de transferencia dadas y analizar la estabilidad de sistemas.
Este documento introduce Matlab y Simulink. Explica que Matlab es un lenguaje de alto nivel para realizar cálculos científicos y técnicos que incluye herramientas de visualización y un entorno de programación. Cubre temas como el entorno de Matlab, sintaxis básica, vectores, matrices, gráficos y resolución de sistemas de ecuaciones.
Las matemáticas en el retoque digital de imágenesjorquera
Experiencia realizada con alumnos de bachillerato en abril de 2010 para dar a conocer las matemáticas que hay detrás del retoque digital de imágenes. Para ello se utilizó la herramienta de software libre Gimp.
Análisis de imágenes: reconocimiento de letrasSandra Lucia
Este documento presenta una metodología para reconocer letras T y Y mediante el análisis de imágenes y la detección de líneas usando la transformada de Hough. La imagen es procesada, segmentada y sus características extraídas para clasificar las letras basado en el número de líneas detectadas, siendo 4 líneas para una T y más de 4 para una Y. Los resultados muestran que el método funciona de manera robusta para reconocer estas letras.
Este documento describe un sistema de visión artificial para el reconocimiento y manipulación de objetos utilizando un brazo robot. El sistema incluye una cámara, tarjeta de captura de video e interfaz con el brazo robot. La imagen capturada es procesada mediante conversión a escala de grises, umbralización, erosión, dilatación y etiquetado para segmentar los objetos. Luego, una red neuronal entrenada clasifica los objetos y guía las acciones del brazo robot.
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágenJob Isaias Cach Cach
El documento describe comandos de Matlab utilizados para el procesamiento de imágenes, incluyendo cómo cargar imágenes, visualizar imágenes, realizar operaciones con matrices, usar bucles for y condicionales if, aplicar transformadas como la FFT, y utilizar filtros y otras funciones como histograma e igualación de histograma.
Este documento describe el desarrollo de un algoritmo para contar glóbulos rojos mediante procesamiento digital de imágenes. El algoritmo utiliza una cámara conectada a un microscopio para capturar imágenes de muestras de sangre y luego aplica procesos como conversión a escala de grises, filtrado, segmentación y transformada de Hough para detectar y contar las células. Los resultados muestran que el algoritmo automatiza el conteo manual con un error promedio de solo el 4%.
1) El documento introduce MATLAB, un software de ingeniería para cálculo numérico y gráficos. 2) Explica funciones básicas como escalares, vectores, matrices, operaciones matemáticas y funciones predefinidas. 3) MATLAB es útil para álgebra lineal, análisis numérico y otras aplicaciones en ciencia e ingeniería.
Este documento presenta el laboratorio 2 sobre procesamiento de imágenes y visión artificial. Incluye objetivos como manipular el histograma, ecualizar imágenes, aplicar corrección gamma, realizar transformaciones morfológicas y filtrado espacial. Se deben desarrollar funciones en Matlab para cada procedimiento y responder un cuestionario creando funciones adicionales para comparar con funciones de Matlab. El informe final debe incluir resultados, procedimientos y respuestas al cuestionario en Word, referenciando líneas de código.
Este documento describe los requisitos para una aplicación que permite cargar y mostrar imágenes BMP, así como aplicar seis transformaciones a las imágenes, incluyendo negativo, flip vertical, binarización, pixelamiento, escala de grises y convolución. Se debe mostrar imágenes de hasta 400x300 píxeles y capturar parámetros como umbrales y matrices de convolución para algunas transformaciones.
Este documento presenta un tutorial sobre el uso de MATLAB para aplicaciones numéricas. Introduce conceptos básicos como variables, vectores, matrices, funciones, polinomios y representación gráfica. Explica cómo crear y manipular este tipo de objetos matemáticos en MATLAB así como realizar cálculos y visualizaciones numéricas. El tutorial contiene numerosos ejemplos paso a paso para ilustrar el uso de las principales funciones y comandos de MATLAB.
Matlab es un entorno de cómputo que permite realizar cálculos matemáticos, estadísticos y gráficos. Ofrece herramientas para álgebra lineal, cálculo, estadística, procesamiento de señales y simulación. Permite realizar operaciones matemáticas, lógicas y comparaciones, así como manipular vectores y matrices.
Este documento describe un nuevo algoritmo llamado "Eigenfaces de Imagen Reducida" para el reconocimiento automático de rostros. El algoritmo reduce el tamaño de las imágenes antes de aplicar el método de "Eigenfaces" para mejorar el porcentaje de reconocimiento. El documento compara los resultados del nuevo método con dos versiones del método original de "Eigenfaces" usando una base de datos de rostros. Los resultados muestran que el nuevo método logra un mayor porcentaje de reconocimiento y puede trabajar con conjuntos de imágenes más grandes
Este documento presenta el laboratorio 2 sobre procesamiento de imágenes y visión artificial. El objetivo es binarizar imágenes, realizar zoom, manipular histograma, aplicar corrección gamma, dilatación y erosión, apertura y cierre, y detección de regiones. Se pide desarrollar funciones en Matlab para estos procesos y comparar resultados con funciones existentes. El informe debe incluir imágenes con comentarios y conclusiones sobre los resultados obtenidos.
El documento presenta los ejercicios resueltos en MATLAB del Capítulo II del libro Sistemas de Control para la Ingeniería de Norman Nise. Se definen funciones de transferencia y polinomios, y se obtienen sus raíces y se multiplican polinomios utilizando comandos de MATLAB. También se expanden funciones en fracciones parciales y se resuelve un ejemplo utilizando las herramientas matemáticas simbólicas de MATLAB.
Este documento presenta conceptos básicos sobre imágenes digitales y su procesamiento en MATLAB. Introduce cómo las imágenes se representan como matrices en MATLAB y explica funciones para leer y escribir imágenes desde archivos. Luego describe operaciones básicas de procesamiento de imágenes como filtrado, detección de bordes, umbralización y transformaciones morfológicas. Finalmente presenta la herramienta vfm para captura de imágenes.
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACAndres Ccolque Sandy
Este código en MATLAB procesa una imagen para resaltar el color rojo sobre el gris mediante 6 etapas: 1) carga la imagen original, 2) la convierte a escala de grises, 3) extrae la banda roja, 4) aplica un filtro de mediana a la banda roja, 5) corrige el contraste de la banda roja, 6) crea una máscara alrededor de un punto rojo seleccionado y 7) combina las bandas para el efecto final atenuando los grises. Al hacer clic solo en el rojo de la
Este documento resume los conceptos clave de las imágenes digitales. Explica que una imagen digital está compuesta de píxeles y define elementos como la resolución, tamaño, modos de color y formatos comunes. También describe los métodos de representación de imágenes como mapas de bits y gráficos vectoriales, y explica la diferencia entre escalado y remuestreo.
Este documento introduce diferentes métodos para representar información numérica en una computadora, incluyendo números de punto fijo, números reales y caracteres. Explica que la información debe codificarse de forma sistemática usando patrones de ceros y unos. Luego, describe la representación de números de punto fijo, donde todos los números tienen la misma cantidad de dígitos y la coma decimal está en la misma posición. Finalmente, analiza conceptos como el rango y la precisión de esta representación, y cómo la ley asociativa del álgebra no siempre se cumple debido a las limitaciones de
Este documento describe cómo usar MATLAB para generar diagramas de Bode y Nyquist. Explica que MATLAB puede usarse para simular sistemas de control mediante el cálculo de funciones de transferencia y la generación gráfica de los diagramas de Bode y Nyquist. Luego muestra cómo usar los comandos "bode" y "nyquist" de MATLAB para generar estos diagramas a partir de funciones de transferencia dadas y analizar la estabilidad de sistemas.
Este documento introduce Matlab y Simulink. Explica que Matlab es un lenguaje de alto nivel para realizar cálculos científicos y técnicos que incluye herramientas de visualización y un entorno de programación. Cubre temas como el entorno de Matlab, sintaxis básica, vectores, matrices, gráficos y resolución de sistemas de ecuaciones.
Las matemáticas en el retoque digital de imágenesjorquera
Experiencia realizada con alumnos de bachillerato en abril de 2010 para dar a conocer las matemáticas que hay detrás del retoque digital de imágenes. Para ello se utilizó la herramienta de software libre Gimp.
Similar a 282361940-Seguimiento-de-Objetos-de-Colores-Con-Webcam-en-Matlab.docx (20)
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