Con la librería Libpuzzle de PHP podemos comparar dos imágenes (GIF, PNG, JPG) y comprobar si son similares o no.
Esta librería es gratis, de fácil configuración, ligera y de fácil uso.
Aquí un ejemplo de como comprobaríamos si dos imágenes son similares, y cómo luego las comprimimos para ser almacenadas en base de datos.
# Compute signatures for two images
$cvec1 = puzzle_fill_cvec_from_file('img1.jpg');
$cvec2 = puzzle_fill_cvec_from_file('img2.jpg');
# Compute the distance between both signatures
$d = puzzle_vector_normalized_distance($cvec1, $cvec2);
# Are pictures similar?
if ($d < PUZZLE_CVEC_SIMILARITY_LOWER_THRESHOLD) {
echo "Pictures are looking similar\n";
} else {
echo "Pictures are different, distance=$d\n";
}
# Compress the signatures for database storage
$compress_cvec1 = puzzle_compress_cvec($cvec1);
$compress_cvec2 = puzzle_compress_cvec($cvec2);
Escrito por toWerS 