Documentos de Académico
Documentos de Profesional
Documentos de Cultura
imagen. Ahora se usará ese recorrido para mover una ventana de inspección por la imagen.
Supongamos que tomamos una imagen, la convertimos en una imagen binaria y deseamos
recorrer una ventana de inspección para extraer los patrones que aparecen en ella. Si
amplificamos una región para ver la manera de hacer esto observaríamos que los pixeles
presentan diferentes ordenamientos, se apreciaría algo parecido a la siguiente figura.
Si ahora definimos una ventana de observación de 9 pixeles cuadrados (3x3 pixeles) , codificamos
los patrones observados como números binarios, al colocarnos en un punto (pixel) particular en la
imagen observaríamos algo como lo mostrado en la figura siguiente:
1 0 0
0 1 0
0 1 1
1 0 0 0 1 0 0 1 1 = 275 10
Es importante notar que si la posición de referencia de la ventana de inspección es el pixel central,
entonces existirá una serie de puntos que no son alcanzables por la ventana debido a que si se
llegan a usar se codificarán patrones incompletos, es decir, menores a 9 bits. Como se aprecia con
el recuadro rojo, que al estar en una esquina de la imagen solamente puede observar un patrón
descrito por 4 bits. Así que se debe tener cuidado con el recorrido que puede realizar la ventana
de inspección. En el caso particular que se está tratando, el área de inspección alcanzable por la
ventana está marcado por el recuadro anaranjado que se muestra en la figura siguiente:
Así, si una imagen está descrita por 30 renglones y 20 columnas, puede observarse que puede
extraer (30-2) x (20 - 2) = 28 x18 = 504 patrones, en lugar de 600 patrones tentativos,
representando casi un 17% de posible información faltante del total de la imagen. Sin embargo, si
consideramos ahora una imagen de 100 x 100 pixeles se tendrán 9 604 patrones de 10 000
patrones posibles, lo que representa una pérdida cercana apenas al 4% debida a patrones
incompletos. El caso particular mostrado en la última figura muestra que el total de patrones que
pueden extraerse en esa región son 25.
Como observación acerca del recorrido de la ventana de inspección sobre la imagen, de la figura
anterior puede observarse que los índices que marcarán el recorrido están dados por:
Así, para recorrer por completo una imagen de N renglones por M columnas se recorrerán los
intervalos de [2, N-1]x[2xM-1]. Como en Python los índices de los arreglos inician en 0 en lugar de
1, el intervalo del recorrido de la ventana de inspección estará dado por [1, N-2]x[1xM-2].
Antes de pasar a la implementación en software, se procederá a extraer algunos patrones en
forma manual. Para ello nos apoyaremos en la siguiente figura, que es la imagen almacenada en el
archivo “MuestraTextura.png”.
Ahora se procederá a realizar la extracción del vector LBP de la imagen que se ha estado usando
en todo el documento, es importante mencionar que, aunque la imagen en sí ya está en blanco y
negro absolutos, el proceso de extracción de patrones es aplicable a toda imagen en escala de
grises. La siguiente es una figura conocida a la que le aplicaremos la extracción de patrones LBP
considerando que para que sean tomados en cuenta, los vecinos deben superar el valor de
intensidad del pixel central.
El resto del proceso de generación del vector LBP es semejante al proceso de extracción del vector
CCR.
Ahora que ya se cuenta con herramientas que permiten convertir una imagen en un vector se
puede usar esta representación para efectos de comparación de imágenes. Estas representaciones
captan información estadística de las estructuras encontradas en la imagen mediante la ventana
de inspección.