# Tecnologías multimedia e interacción/Comparación de imágenes
## Introducción

En esta sección se hablará sobre la comparación de imágenes, y en especial de la comparación de imágenes mediante histogramas de color.

## Origen

A continuación se mencionan algunos de los motivos por los cuales la comparación de imágenes y los métodos para llevarla a cabo están creciendo en importancia:
* Necesidad de consulta de imágenes mediante ejemplo (en inglés, denominado Content-Based Image Retrieval, CBIR).
* La gestión de bases de datos de imágenes y su recuperación ha sido un área de investigación activa desde la década de 1970.
* Con el rápido aumento de la velocidad de la computadora y la disminución en el costo de la memoria, las bases de datos que contienen miles o incluso millones de imágenes se utilizan en muchas áreas.
* Con el crecimiento en el número de imágenes, la anotación manual se hace inviable.

## Aplicaciones

Algunas de las aplicaciones más conocidas de la comparación de imágenes son las que siguen:
* Prevención de crímenes y registros de imágenes policiales
* Cámaras de vigilancia
* Eliminación de imágenes duplicadas: la posibilidad de encontrar imágenes repetidas de una forma sencilla y rápida evita perder espacio innecesariamente mediante el almacenamiento de duplicados.
* Detección de desnudez en imágenes. Por ejemplo, varias redes sociales hacen uso de algoritmos de comparación de imágenes para detectar desnudos en las fotografías.
* Colecciones de arte
* Diagnósticos médicos y registro de imágenes médicas: se pueden llevar a cabo comparaciones de fotografías de alta calidad que permiten detectar más rápidamente la similitud entre dos diagnósticos médicos sin necesidad de que los médicos lleven a cabo todo el proceso, y solo mediante la validación final.

## Extracción de características

La extracción de características es un medio para extraer información compacta pero semánticamente valiosa de las imágenes.
A la hora de llevar a cabo la comparación de imágenes, debemos plantearnos que es lo más importante. ¿Qué características las hacen parecidas o diferentes? ¿Cuándo podemos decir que dos imágenes se parecen? Existen varios tipos de características: el color, el tamaño, las proporciones, la rotación, el enfoque,... Nos centraremos en tres: el color, la textura y la forma.
La información sobre la extracción de características se utiliza como una firma para la imagen, de forma que sólo dos imágenes iguales dispongan de la misma firma o de las mismas características.
De este modo, imágenes similares deberían tener firmas similares.

### Color

El color es una de las características más importantes. Los seres humanos tendemos a distinguir las imágenes basándonos principalmente en su color. Es la característica más utilizada y estudiada, y simplifica la identificación de objetos. Para llevar a cabo la extracción de características mediante el color debe determinarse un espacio de color adecuado y un descriptor de color eficaz.
Tener un cierto espacio de color facilita la especificación de colores. Cada color en el espacio de color es un solo punto representado en un sistema de coordenadas. Existen diferentes espacios de color: RGB, HSV, CIE L*a*b o CIE L*u*v. Escoger un espacio de color es completamente necesario para asegurar la uniformidad perceptual.
Por otro lado, existen diferentes esquemas de representación de color:
* Histograma de color (color histograms): es el método más utilizado para representar color.
* Momentos de color (color moments).
* Borde de color (color edge).
* Textura de color (color texture).

### Textura

La percepción de texturas puede ser muy complicada, ya que existen muchos tipos de textura distintos: direccional, no direccional, regular, no regular, compleja, etc.
Las texturas de imágenes tienen aplicaciones útiles en procesamiento de imágenes y visión por computadora. Algunas de estas aplicaciones son las siguientes:
* Reconocimiento de regiones de imagen (clasificación de textura).
* Reconocimiento de los límites de textura (segmentación de textura).
* Síntesis de texturas.
* Generación de imágenes de textura a partir de modelos de textura conocidos.
Los métodos más usados para la descripción de la característica de textura son los métodos estadísticos, el enfoque basado en modelos y la transformación del dominio.

### Forma

Por último, tenemos la extracción de la característica de forma.
Dicha característica se representa por el contorno. El reconocimiento mediante forma es un modo que tenemos las personas de reconocer el entorno.
Existen dos técnicas principales de comparación de imágenes por forma: técnicas basadas en regiones y técnicas basadas en contorno.
En las técnicas basadas en regiones, todos los píxeles dentro de una forma se tienen en cuenta para obtener la representación de la forma. Para definir la forma se utilizan descriptores de momentos.
Por otro lado, en técnicas basadas en contorno se explota información del contorno de formas. Los descriptores de forma basados en contorno incluyen:
* Simples: área, perímetro, compacidad, orientación,...
* Complejos: Descriptores de Fourier, descriptores de cuadrículas,...
Las técnicas basadas en contorno son más populares que las basadas en regiones.

## Histogramas
### Histogramas de color
#### ¿Qué son?

Un histograma de color es una representación de la distribución de colores en una imagen. En un histograma de color, podemos separar en canales cada uno de los colores que conforman la imagen (cuántos rojos(R), verdes(G) y azules(B) hay), y contar la cantidad de píxeles de cada color que hay. Cuantos más píxeles tengamos, más se repite ese color.

#### Características

Los histogramas de color se centran en la proporción de colores distintos, independientemente de la localización espacial de esos colores.
Además, muestran la distribución estadística de colores.
Cada canal R, G, B tiene un rango de valores de 0 a 255 (es decir, de 8 bits).

#### Ventajas e inconvenientes

La utilización de los histogramas de color tiene tanto ventajas como inconvenientes. A continuación se nombran las principales:
* Ventajas:
- Son computacionalmente eficientes.
- No son sensibles a cambios pequeños en la posición de la cámara.
- En general, diferentes objetos tienen histogramas de color muy distintos.
* Inconvenientes:
- No proporcionan información espacial.
- Son sensibles a la compresión.
- Muy sensibles a cambios en el brillo de la imagen.
- La representación ignora la forma y la textura de los objetos.

#### Funciones de similitud

Una vez construidos histogramas de color para diferentes imágenes (por ejemplo, las imágenes contenidas en una base de datos), necesitamos funciones de similitud y diferentes métricas para comparar la similitud entre dos imágenes. Esto requiere en general la reducción del número de colores, y también hace que sea imprescindible utilizar un espacio de colores uniforme.
Las funciones de similitud entre histogramas están basadas en funciones distancia. La distancia entre dos histogramas de color, que es lo que se mide para comparar dos imágenes, se calcula usando diferentes medidas. Las medidas más conocidas son:
* Distancia euclídea.
* Distancia intersección.
* Distancia cuadrática.
* Distancia de Mahalanobis.
* Distancia de Haussdorff.
* Distancia de Minkowski.

#### Otros métodos de comparación de histogramas de color

También se han probado otros métodos de comparación que parten de los histogramas de color, con buenos resultados:
* Combinaciones de medidas distancia entre histogramas en 1D y 2D.
* Histogramas locales o por regiones.
* Ponderación del peso de los colores en función de la tonalidad de la imagen para evitar sesgos.
* Cuantificación de los histogramas: colocar colores similares en distintos contenedores para reducir el espacio que ocupa la información del histograma y el tiempo de comparación. Queremos una compensación entre el espacio que ocupa, el tiempo de procesamiento y la precisión de los resultados obtenidos.

## Problemas de la comparación de imágenes

Al intentar comparar dos imágenes surgen varios problemas importantes:
* Existe una falta de coincidencia entre la información que se puede extraer de los datos visuales y la interpretación que esos mismos datos pueden tener para distintos usuarios en diferentes situaciones.
* Es vital que devuelvan los resultados de las consultas muy rápido.
* Métodos que son más precisos necesitan en general más tiempo de procesamiento y una cantidad muy superior de imágenes entre las que comparar.