¿Cómo comparo imagen?

Estoy haciendo un trabajo de la uni en Delphi, quisiera comprar una imagen capturada de la webcam, es por ejemplo que toma la foto a algo redondo y, quisiera saber si no ahí aparte de redes neuronales algo para comparar con una imagen que ya he guardado en bmp, es decir que no me diga es idéntica, o similar, si no que si la encuentra parecida me de un resultado, el que yo decida.

1 respuesta

Respuesta
1
Creo que ya sabes que es un tema complejo así que no voy a explicarte la teoría.
Yo lo abordaría así:
<ul>
<li>Primero cargamos las dos imágenes, la de la webcam y la que vamos a comparar.</li>
<li>Define tres variables: igual  /  similar  / diferente</li>
<li>Se van recorriendo ambas imágenes punto a punto (usando
coordenadas x e y) comprobando el color rgb de ambas.</li>
<li>Si el pixel coincide suma 1  a la variable igual, si no es igual compara mediante una tolerancia, es decir un rango de valor los dos pixeles. Imagina la misma foto tomada a dos horas diferentes, básicamente la foto es la misma y sólo varian los tonos de color, intenta comparar tanto por exceso (más luz) como por defecto (más oscuro) el pixel, si entra dentro del rango suma 1 a parecido si no suma 1 a diferente.
</li>
<li>Calcula el porcentage de cada variable, ya sabes si la imagen tiene X pixeles ese es el 100% calcula el porcentage para igual, parecido y diferente.</li>
<li>Ahora viene lo complejo, dependiendo de las fotos, y del rango de tolerancia dado un porcentage u otro en cada valor determinara el parecido de la foto con la muestra. Ese porcentage lo tienes que elegir tú, pero un 90% de igual con un 5% de parecido y un 5% de diferente tiene muchas papeletas para ser la misma foto.</li>
</ul>
Reconocer objetos, formas etc ya es un tema mucho mucho más complejo pero la teoría podría ser la misma, descomponer la imagen en trazos, curvas, retas, ángulos y comparar los porcentajes así un cubo no será nunca igual a una esfera por ejemplo, ya que el numero de rectas detectadas en uno no coincidirá con las curvas de otro y viceversa. Detectar curvas y rectas sobre la imagen sería el problema en cuestión, te remito a la tecnología ocr que puede ser una buena forma de abordar ese problema.
Sé que es un poco lioso por eso si tienes dudas consúltame, quizás pueda echarte una mano con el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas