Escolar Documentos
Profissional Documentos
Cultura Documentos
imágenes.
Freddy Panchi 1
1
Universidad de las Fuerzas Armadas Espe, Latacunga-Ecuador
2
Email: fspanchi@espe.edu.ec
1. Introduction
Resulta indispensable conocer el proceso de generación y representación de una imagen en el
ordenador. Dependiendo de la complejidad de las distintas aplicaciones existirán mayor o menor
número de subprocesos dentro de 2 fundamentales: el proceso de adquisición y el proceso de
análisis de la imagen. La calidad de la imagen obtenida depende esencialmente de las
características de la cámara y del ordenador, [1] tres pasos muy importantes involucrados
durante el análisis de video involucra: detección de objetos en movimiento que nos interesan,
seguimiento de dicho objeto de cada cuadro a otro y análisis de seguimiento de objetos para
reconocer y distinguir su comportamiento. [2]
Tener una manera de representar imágenes como matrices de números es crucial para procesar
imágenes usando técnicas matemáticas. [5]
Como ya se explicó al inicio, las imágenes en color se pueden representar utilizando varios
formatos; el formato que se utiliza es el RGB, las imágenes se almacenan mediante tres
componentes, que representan sus intensidades en las escalas de rojo, verde y azul. Un color
rojo puro está representado por los valores de intensidad (1, 0, 0), mientras que, por ejemplo, el
amarillo es representado por (1, 1, 0) y el azul por (0, 0, 1); Se pueden obtener otros colores con
diferentes opciones de intensidades. Por lo tanto, para representar una imagen en color,
necesitamos tres valores por píxel. [5]
El tono de color se encuentra en un rango de 0 a 255, valores que toman los elementos de la
matriz de color, estos valores representan un tono de color dentro de la matriz, donde 0
representa negro y 255 representa el blanco, esto se da en forma binaria es decir 0 o 255. [5] En
la imagen cada píxel tiene un color particular; ese color se describe por la cantidad de rojo,
verde y azul que contiene. Si cada uno de estos componentes tiene un rango de 0 a 255, esto da
un total de 16676 colores diferentes posibles en la imagen. Las imagenes pueden ser
consideradas como una "pila" de tres matrices; representando los valores de rojo, verde y azul
para cada píxel. Esto significa que por cada píxel hay tres valores. [6]
La imagen que obtenemos en tiempo real, se la va a cambiar a una imagen binaria en donde
dicha imagen tendrá ahora cada píxel en blanco y negro. Como solo hay dos valores posibles
para cada píxel, solo necesitamos un bit por píxel. Tales imágenes pueden ser eficientes en
términos de almacenamiento. [6]
Las imágenes también se las trabajara en escala de grises, en donde cada píxel es un tono de gris,
normalmente de 0 (negro) a 255 (blanco). Este rango significa que cada píxel puede
representarse mediante ocho bits, o exactamente un byte. Este es un rango muy natural para el
manejo de archivos de imagen. [6]
2. Análisis matemático
Técnica para la binarización: el tramado (o Dithering). Para el cálculo de los umbrales y el
tramado existen numerosos algoritmos dos de ellos son el:
Figura1: Formula para el tramado Jarvis, Judice y Ninke, donde se observa el divisor 48
y la adición de una fila, lo que hace más lenta la binarizacion de la imagen.
Produce un urdido mejor diseminado pero sutilmente más grueso. [7]
Esta parte lo que se va a observar es el proceso que se lleva a cabo en el programa. Cabe aclarar
que se trabajara con una resolución de 160 x 120, esta será la dimensión de todas las matrices
que saldrán durante todo el proceso. Lo primero que se va a realizar es la asignación de
variables, por lo tanto, se va asignar la variable C al cuadro que se va analizar del video.
A esa imagen se la convierte a RBG en escala de grises (0-255) con el código en Matlab
(rgb2gray). Este código lo que hace es convertir los valores RGB en valores de escala de
grises formando una suma ponderada de los componentes R, G Y B:
0.2989 * R + 0.5870 * G + 0.1140 * B
Se va a resaltar el canal de cada uno de los colores, rojo, verde y azul, esto se lo realiza restando
cada matriz en RGB menos la matriz en escala de grises, al resultado de este proceso le
asignaremos la variable orojo, overde y oazul. Este proceso nos servirá para visualizar con más
detalle cómo se vería el objeto que se seleccione en el momento de utilizar el programa. A
continuación, la selección de los objetos de cada color.
orojo = C(:,:,1)-Cgray
Figura 6: Imagen resaltando el canal rojo
overde = C(:,:,2)-Cgray
oazul = C(:,:,3)-Cgray
Figura 10: Imagen resaltando el canal azul
Se va asignar nC a la variable C esto creara una matriz con las mismas dimensiones que la
imagen original C, esto servirá para seleccionar el color de interés. Este proceso se lo realiza
utilizando los sliders, es una forma más fácil para que el usuario seleccione el canal de su
preferencia. Como ya es de conocimiento las variables orojo, overde y oazul son los canale que
resaltan el color rojo, verde y azul, respectivamente. Cada una de estas variables serán
multiplicadas por el valor que se le asigne al slider, cabe recalcar que el slider va de 0 a 1.
nC(:,:,1)=rv.*orojo;
nC(:,:,2)=gv.*overde;
nC(:,:,3)=bv.*oazul;
Como ejemplo, si queremos seleccionar el objeto rojo, tenemos que poner los slider de forma
que seleccione correctamente el color, para seleccionar el objeto rojo tenemos que mover el
slider al número 1 y el slider del color verde y azul en 0, el proceso que estaría haciendo seria el
siguiente:
nC(:,:,1)=1*255;
nC(:,:,2)=0*255;
nC(:,:,3)=0*255;
Figura 13: Imagen donde se encuentra seleccionado
el canal rojo.
Al multiplicar por 1 en el canal rojo y 0 en los canales azul y verde, lo que se está haciendo es
que el programa seleccione solo los valores que tengan una iluminación de 255 de la matriz de
la imagen seleccionada.
Hasta aquí se ha cargado la matriz nC con los requerimientos del usuario resaltando los canales
de color específicos. El proceso que se está llevando en el recuadro que se encuentra a la
izquierda es la binarizacion de la imagen por nombre nC (imagen modificada por el usuario),
asignándolo al umbral bw antes ya mencionado.
0 𝑠𝑖 𝑔 < 𝑡
𝑇𝑔𝑙𝑜𝑏𝑎𝑙 (𝑔) = {
0 𝑠𝑖 𝑔 ≥ 𝑡
Figura 14: Imagen binarizada que resalta el canal rojo.
El siguiente código nos servirá para eliminar objetos pequeños los cuales impiden una mejor
selección del objeto.
imbw = bwareaopen(imbw,str2num(get(handles.delpix,'String')));
Figura 16: Esta parte permite remover los pixeles que nos
impiden una mejor selección del objeto.
Aquí está la matriz binarizada, el objeto seleccionado está representado con el número 1.
Ahora se va a extraer las propiedades de la matriz imbw la cual es la matriz binarizada, de aquí
se va a extraer el centroide y el Boundingbox, el cual es el área que se va a enmarcar del objeto
que se ha seleccionado para el seguimiento, después mediante lo que se a extraído se va a crear
n rectángulos de acuerdo a los n objetos detectados.
Figura 21: Imagen del contenido de la variable prop. Se puede observar los valores del centroide y del
boundingbox.
Al final se extrae la los canales rojo, verde y azul de la matriz modificada a color nC, estos
canales pertenecen a la imagen en donde se está seleccionando el objeto.
Figura 22: Imagen con el objeto de color rojo seleccionado, en esta imagen se
puede observar como la mano no interfiere en la selección del color.
A continuación se podrá observar cada uno de los canales ya modificados por el usuario, en este
caso se esta utilizando como ejemplo la selección del color rojo.
Canal rojo.
Figura 23: Imagen en donde Figura 24: Matriz de la imagen en donde se resalta el canal rojo.
se resalta el canal rojo
Figura 26: Imagen del canal Figura 27: Matriz de la imagen perteneciente al canal verde, esta se
verde. Encuentra llena de ceros.
Canal azul
Figura 28: Imagen del canal Figura 29: Matriz de la imagen perteneciente al canal azul, esta se
Azul. Encuentra llena de ceros.
Como se puede observar en el canal rojo aparece el objeto que estamos seleccionando.
Ahora se va a realizar el mismo proceso, pero seleccionando el color verde, si queremos
seleccionar el objeto verde, tenemos que poner los slider de forma que seleccione correctamente
el color, para seleccionar el objeto verde tenemos que mover el slider al número 1 y el ahora el
slider del color rojo y azul en 0, el proceso que estaría haciendo seria el siguiente:
nC(:,:,1)=0*255;
nC(:,:,2)=1*255;
nC(:,:,3)=0*255;
Al multiplicar por 1 en el canal verde y 0 en los canales rojo y azul, lo que se está haciendo es
que el programa seleccione solo los valores que tengan una iluminación de 255 de la matriz de
la imagen seleccionada.
Hasta aquí se ha cargado la matriz nC con los requerimientos del usuario resaltando los canales
de color específicos. El proceso que se está llevando en el recuadro que se encuentra a la
izquierda es la binarizacion de la imagen por nombre nC (imagen modificada por el usuario),
asignándolo al umbral bw antes ya mencionado.
Aquí está la matriz binarizada, el objeto seleccionado está representado con el número 1.
Ahora se va a extraer las propiedades de la matriz imbw la cual es la matriz binarizada, de aquí
se va a extraer el centroide y el Boundingbox, el cual es el área que se va a enmarcar del objeto
que se ha seleccionado para el seguimiento, después mediante lo que se a extraído se va a crear
n rectángulos de acuerdo a los n objetos detectados.
Al final se extrae los canales rojo, verde y azul de la matriz modificada a color nC, estos canales
pertenecen a la imagen en donde se está seleccionando el objeto.
Figura 36: Imagen con el objeto de color verde seleccionado, en esta imagen se
puede observar como la mano no interfiere en la selección del color.
A continuación, se podrá observar cada uno de los canales ya modificados por el usuario, en
este caso se está utilizando como ejemplo la selección del color verde.
Canal rojo.
Figura 37: Imagen en donde Figura 38: Matriz de la imagen en donde se resalta el canal rojo.
se resalta el canal rojo
Canal verde
Figura 39: Imagen del canal Figura 40: Matriz de la imagen perteneciente al canal verde.
verde.
Canal azul
Figura 41: Imagen del canal Figura 42: Matriz de la imagen perteneciente al canal azul, esta se
Azul. Encuentra llena de ceros.
Como se puede observar en el canal verde aparece el objeto que estamos seleccionando.
Ahora se va a realizar el mismo proceso, pero seleccionando el color azul, si queremos
seleccionar el objeto azul, tenemos que poner los slider de forma que seleccione correctamente
el color, para seleccionar el objeto azul tenemos que mover el slider al número 1 y ahora el
slider del color rojo y verde en 0, el proceso que estaría haciendo seria el siguiente:
nC(:,:,1)=0*255;
nC(:,:,2)=0*255;
nC(:,:,3)=1*255;
Al multiplicar por 1 en el canal azul y 0 en los canales rojo y verde, lo que se está haciendo es
que el programa seleccione solo los valores que tengan una iluminación de 255 de la matriz de
la imagen seleccionada.
Hasta aquí se ha cargado la matriz nC con los requerimientos del usuario resaltando los canales
de color específicos. El proceso que se está llevando en el recuadro que se encuentra a la
izquierda es la binarizacion de la imagen por nombre nC (imagen modificada por el usuario),
asignándolo al umbral bw antes ya mencionado.
Aquí está la matriz binarizada, el objeto seleccionado está representado con el número 1.
Ahora se va a extraer las propiedades de la matriz imbw la cual es la matriz binarizada, de aquí
se va a extraer el centroide y el Boundingbox, el cual es el área que se va a enmarcar del objeto
que se ha seleccionado para el seguimiento, después mediante lo que se a extraído se va a crear
n rectángulos de acuerdo a los n objetos detectados.
Al final se extrae los canales rojo, verde y azul de la matriz modificada a color nC, estos canales
pertenecen a la imagen en donde se está seleccionando el objeto.
Figura 49: Imagen con el objeto de color verde seleccionado, en esta imagen se
puede observar como la mano no interfiere en la selección del color.
A continuación, se podrá observar cada uno de los canales ya modificados por el usuario, en
este caso se está utilizando como ejemplo la selección del color azul.
Canal rojo.
Figura 50: Imagen en donde Figura 51: Matriz de la imagen en donde se resalta el canal rojo.
se resalta el canal rojo
Canal verde
Figura 52: Imagen del canal Figura 53: Matriz de la imagen perteneciente al canal verde.
verde.
Canal azul
Figura 54: Imagen del canal Figura 55: Matriz de la imagen perteneciente al canal azul.
Azul.
Como se puede observar en el canal azul aparece el objeto que estamos seleccionando.
Ahora se va a realizar el mismo proceso, pero seleccionando los tres colores, si queremos
seleccionar los tres colores, tenemos que poner los sliders de forma que seleccione
correctamente los colores, tenemos que mover los sliders al número 1 el proceso que estaría
haciendo seria el siguiente:
nC(:,:,1)=1*255;
nC(:,:,2)=1*255;
nC(:,:,3)=1*255;
Al multiplicar por 1 en el canal azul y 0 en los canales rojo y verde, lo que se está haciendo es
que el programa seleccione solo los valores que tengan una iluminación de 255 de la matriz de
la imagen seleccionada.
Hasta aquí se ha cargado la matriz nC con los requerimientos del usuario resaltando los canales
de color específicos. El proceso que se está llevando en el recuadro que se encuentra a la
izquierda es la binarizacion de la imagen por nombre nC (imagen modificada por el usuario),
asignándolo al umbral bw antes ya mencionado.
Aquí está la matriz binarizada, el objeto seleccionado está representado con el número 1.
Ahora se va a extraer las propiedades de la matriz imbw la cual es la matriz binarizada, de aquí
se va a extraer el centroide y el Boundingbox, el cual es el área que se va a enmarcar del objeto
que se ha seleccionado para el seguimiento, después mediante lo que se a extraído se va a crear
n rectángulos de acuerdo a los n objetos detectados.
Objeto seleccionado en un recuadro. En este caso el centroide de la figura de color rojo se ubica
en la Fila y Columna de(34.01972872, 52.72009864) el de la figura de color verde se ubica en
(59.8915441, 84.5441176) el de la figura color azul de ubica en (94.5182767, 46.391644)y el
BoundingBox de la figura de color rojo es (16.500000, 34.5000, 34, 37), el BoundingBox de la
figura de color verde es (40.50000, 68.5000, 36, 28) , el BoundingBox de la figura de color azul
es (80.500000, 28.50000, 28, 36) estos números son las posiciones de las esquinas del recuadro
que se creó para seleccionar los objetos, estos se crean alrededor del centroide.
Estos datos se los puede encontrar en el Workspace. Están asignadas con la variable de (prop).
Ahí se encuentran los valores del centroide y del BoundingBox.
Al final se extrae los canales rojo, verde y azul de la matriz modificada a color nC, estos canales
pertenecen a la imagen en donde se está seleccionando el objeto.
Figura 62: Imagen con el objeto de color verde seleccionado, en esta imagen se
puede observar como la mano no interfiere en la selección del color.
A continuación, se podrá observar cada uno de los canales ya modificados por el usuario, en
este caso se está utilizando como ejemplo la selección de los tres colores.
Canal rojo.
Figura 63: Imagen en donde Figura 64: Matriz de la imagen en donde se resalta el canal rojo.
se resalta el canal rojo
Canal verde
Figura 65: Imagen del canal Figura 66: Matriz de la imagen perteneciente al canal verde.
verde.
Canal azul
Figura 67: Imagen del canal Figura 68: Matriz de la imagen perteneciente al canal azul.
Azul.
Como se puede observar en los tres calanes aparecen los objetos que estamos seleccionando.
[1] Cuevas, E., Zaldívar, D., & Pérez, M. (2016). Procesamiento digital de imágenes con
MATLAB & Simulink. Ra-Ma.
[2] Raza, Kazim & Kumar Selvaperumal, Dr Sathish & Natarj, Chandrasekharan &
Lakshmanan, Ravi & Seeralan, Arun. (2018). Enhanced Object Detection and Tracking
Algorithm in Complex Videos. 1-8. 10.1109/AEEICB.2018.8480996.
[4] Autores: Julián Pérez Porto y María Merino. Publicado: 2014. Actualizado: 2016.
Definicion.de: Definición de RGB (https://definicion.de/rgb/)
[5] Hansen, Per Christian, James G. Nagy, and Dianne P. O'leary. Deblurring images:
matrices, spectra, and filtering. Vol. 3. Siam, 2006.
[6] McAndrew, A. (2004). An introduction to digital image processing with matlab notes for
scm2511 image processing. School of Computer Science and Mathematics, Victoria University
of Technology, 264(1), 1-264.