Está en la página 1de 3

1

Separación de Regiones en Planos.


Daniel Ornelas Barboza
ITESI
Ing. Mecatrónica, Visión Computacional
danielornelas483@gmail.com


Resumen – Se presenta la metodología o algoritmo
utilizado para separar regiones(objetos) de una imagen en
planos, previamente transformada a escala de grises,
humbralizada(binarizada) y procesada con una función
que nos brinda datos importantes para el llevar acabo la Figura. 1 Imagen con 3 objetos claramente visibles.
tarea, además de los resultados obtenidos de trabajar en 2
imágenes que consideramos óptimas para ser casos de A. Obtención de matriz numerada y numero de objetos o
éxito. regiones, además de un vector que contiene los números de
las regiones.
I. INTRODUCCIÓN Como ya se mencionó antes, desarrollamos previamente una
función que nos proporcionara estos datos, cabe mencionar
Separar regiones de una imagen, es un proceso posteriormente
que esta misma ya transforma la imagen a escala de grises y
puede facilitar tareas de procesamiento de imágenes y visión
además lleva acabo la umbralización(binarización).
computacional, esto porque estas regiones corresponderán
muy probablemente a un objeto o alguna otra cosa de interés
1. Matriz numerada.
en estas, si se tiene más de una región de interés, trabajar en
Esta matriz tiene asignado un mismo número a todos los
estas cuando estén contenidas en una solo imagen puede llevar
pixeles de cada región como se aprecia en la Figura. 2.
a la necesidad de realizar algoritmos muy complejos, que por
ende conlleven a un mayor coste computacional, y tengan mas
probabilidad de fallar, por ejemplo hacer una segmentación
puede realizarse de manera mas sencilla si se trabaja cada
región por separado, todo esto desde nuestro punto de vista.
Este proceso de separación hace uso de una función
desarrollada previamente, que cuenta las regiones en una
imagen y enumera las mismas, lo obtenido de esta función se
procesa para finalmente obtener una matriz r * c * n , donde n
es el numero de regiones y también el de planos.
Figura. 2 Matriz numerada resultante de procesar la
[1] La segmentación de imágenes es uno de los pasos más imagen de la Figura. 1.
importantes que conducen al análisis de procesado de datos de 2. Número de Objetos
imagen: su objetivo principal es dividir una imagen en partes El numero de objetos lo obtenemos como una variable en este
que tienen una fuerte correlación con objetos o áreas del caso es 3.
mundo real contenidos en la imagen. Podemos apuntar para 3. Vector con los números de la matriz numerada
una segmentación completa, lo que resulta en un conjunto de [0,1,7,15]
regiones disjuntas correspondientes únicamente con objetos en
la imagen de entrada, o para segmentación parcial, en qué B. Creación de matriz con n planos
regiones no se corresponden directamente con los objetos de Se crea una matriz o arreglo de 3 dimensiones, esto es sencillo
imagen. por lo menos con MATLAB que es donde se trabaja el
algoritmo. En cada plano guardaremos una región, el fondo
tendrá una
II. DESARROLLO C. Comparación y separación.
Se explicará la metodología con ayuda de la siguiente imagen Se trabaja según la enumeración de pixeles que se tiene, esta
que tiene un tamaño de 10x10 pixeles (Figura.1). información la contiene el vector, ignoramos el color de fondo
que siempre es 0 y solo se toman en cuenta los siguientes por
ejemplo el primer número en este caso 3 y de nuestra matriz
numerada dejamos solo pixeles del fondo y los que
corresponden a la región numerada con este, por obviedad
todos los pixeles de las demás regiones toman la intensidad
2

del fondo y los pixeles de la región una intensidad de 255.


Finalmente se guarda esa matriz obtenida en uno de los planos
del arreglo que se creó, en la Figura. 3 se ve claramente que se
logran separar con éxito.

Figura. 5 Resultado de separar las regiones de la imagen.

No hay un orden definido en la correspondencia de una región


Figura. 3 Regiones separadas a) Región 1 b) Región 2 c) con cierto número de plano, aunque en este caso de alguna
Región 3 forma parezca que, si lo hay, puede variar según la imagen.

El algoritmo lo desarrollamos como una función de Matlab, a La siguiente y última prueba se hizo con una imagen (Figura.
esta la llamamos regions(Matriz numerada, vector, número de 6) en la que se tienen objetos reales, sin embargo, aquí existe
regiones) y tiene como entrada los datos que se mencionan la gran ventaja de que están contrastadas muy bien en un
en el primer paso de nuestro algoritmo, decidimos dejar aparte fondo blanco.
la función llamada objcont que los proporciona, por ello se usa
de la siguiente manera.

[Inum,H,nob] = objcont(A);
P = regions(Inum,H,nob);

Donde A es la imagen en espacio de color RGB.

III. PRUEBAS Y RESULTADOS


En el desarrollo se muestra el resultado con una imagen muy
pequeña, lo optimo es probar con imágenes más grandes, sin
embargo, aquí hacemos una mención importante, según las
pruebas, independientemente de las dimensiones, una buena
umbralización es vital para el funcionamiento correcto de
nuestro algoritmo, también que tanto se distingan las regiones
de interés en la imagen, si no se vuelve muy difícil separar con
el algoritmo actual.
Figura. 6 Imagen de prueba 2.
La imagen de la Figura. 4 fue la primera a probar siendo esta
prediseñada por nosotros y la Figura. 5 el resultado, sin
problemas se aprecia que se separaron correctamente, y
además mantienen su posición original.

Figura. 4 Primera imagen de prueba(prediseñada).


Figura. 7 Resultado de separar regiones de la imagen de
prueba 2.
Para este caso vemos que se separaron correctamente, pero
hubo una ligera pérdida de información en las regiones, esto
puede deberse a la umbralización.
3

IV. CONCLUSIÓN ANEXOS


En base a los resultados obtenidos y a los fallos que se A1. Código de la función (regions).
tuvieron al probar el algoritmo, podríamos decir que aun se function [P] = regions(Inum,H,nob)
encuentra muy limitada, ya que su correcto funcionamiento %Esta función devolverá una matriz con n
aun depende de bastantes factores, de momento alguno que planos, que contendrá las regiones
podría mejorar esto es un mejor método de umbralización, %de interés separadas de una imagen,
también creemos que un filtrado previo de la imagen puede requiere el uso previo de la función
ayudar. Volvemos hacer hincapié en que el tener regiones %objcont para obtener los datos
separadas facilitara las tareas de visión computacional y necesarios para operar por lo menos con
procesamiento digital de imágenes, por razonamiento propio la
decimos que se separarán, procesarán y después se volverán a %metodología utilizada para su
unir o se extraerá la información deseada. desarrollo.
%
REFERENCIAS %Ejemplo:
%
[1] MilanSonka, V. H. (2015). Image Processing, Analysis and %[Inum,H,nob] = objcont(I)
Machine Vision. En V. H. Milan Sonka, Milan Sonka, Vaclav %P = regions(Inum,H,nob)
Hlavac, Roger Boyle (pág. 178). Cengage Learning. %
%I es una imagen es espacio de color RGB,
Inum la matriz enumerada, H el
%vector que contiene la numeración y nob
el número de objetos.
%
%Para acceder a cada plano se utiliza la
siguiente sintaxis.
%
%P(:,:,n) donde n es el número de plano.
[r,c] = size(Inum);
%Creación del arreglo
P(r,c,nob) = 0;
%Ciclo para recorrer el vector de
numeros,
for k = 2:nob+1
% Barrido de matriz numerada
for i = 1:r
for j = 1:c
val = H(k);
%Si el valor es igual al
número en turno, se le asigna
%intensidad de píxel de
información (255) si no se le da
%intensidad de fondo (0),
se guarda en el plano en turno y
%en el píxel
correspondiente
if val == Inum(i,j)
P(i,j,k-1)= 255;
else
P(i,j,k-1)= 0;
end
end
end
P = uint8(P);
end
end

También podría gustarte