Para adaptar la comparación SSIM a Imagick, el proceso es mucho más sencillo y eficiente, ya que la librería ImageMagick tiene el algoritmo implementado de forma nativa en C. Esto significa que es mucho más rápido y preciso que hacerlo manualmente con ciclos for en PHP. Aquí tienes la función adaptada: --------------------------------- getImageWidth() !== $image2->getImageWidth() || $image1->getImageHeight() !== $image2->getImageHeight()) { $image2->resizeImage( $image1->getImageWidth(), $image1->getImageHeight(), Imagick::FILTER_LANCZOS, 1 ); } /** * compareImages retorna un array: * [0] -> Objeto Imagick con la diferencia visual. * [1] -> El valor de la métrica de similitud. */ $result = $image1->compareImages($image2, Imagick::METRIC_SSIM); // Liberar memoria $image1->clear(); $image2->clear(); return $result[1]; } catch (Exception $e) { return "Error: " . $e->getMessage(); } } --------------------------------- // --- Ejemplo de uso --- $imgA = 'imagen1.jpg'; $imgB = 'imagen2.jpg'; $similitud = compareSSIMWithImagick($imgA, $imgB); if (is_numeric($similitud)) { echo "Índice SSIM: " . $similitud . PHP_EOL; echo "Similitud aproximada: " . round($similitud * 100, 2) . "%"; } else { echo $similitud; } --------------------------------- Ventajas de usar Imagick: • Velocidad: Al ejecutarse a nivel de sistema (binarios de ImageMagick), procesa imágenes grandes casi instantáneamente. • Manejo de formatos: Soporta automáticamente PNG, JPG, WebP, TIFF, etc., sin que tengas que cambiar el código. • Precisión estándar: Utiliza la implementación oficial de SSIM, lo que garantiza resultados consistentes con otras herramientas profesionales. Requisitos: • Tener instalada la extensión php-imagick en tu servidor. • En sistemas Linux suele instalarse con: sudo apt-get install php-imagick. • Asegúrate de que la versión de ImageMagick instalada en el sistema sea reciente (la métrica SSIM se añadió en versiones 6.8.3-10+).