La función Imagick::getImageDistortion() es una función incorporada en PHP que se usa para comparar una imagen con una imagen reconstruida y devuelve la métrica de distorsión especificada.
Sintaxis:
float Imagick::getImageDistortion(Imagick $reference, int $metric)
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $referencia: especifica el objeto Imagick que necesita comparar.
- $métrica: Especifica una de las constantes de tipo métrica .
La lista de constantes MÉTRICAS se proporciona a continuación:- imagick::METRIC_UNDEFINED (0)
- imagick::METRIC_MEANABSOLUTEERROR (1)
- imagick::METRIC_MEANSQUAREERROR (2)
- imagick::METRIC_PEAKABSOLUTEERROR (3)
- imagick::METRIC_PEAKSIGNALTONOISERATIO (4)
- imagick::METRIC_ROOTMEANSQUAREDERROR (5)
Excepciones: esta función lanza ImagickException en caso de error.
Valor devuelto: esta función devuelve la métrica de distorsión utilizada en la imagen.
Los siguientes programas ilustran la función Imagick::getImageDistortion() en PHP:
Programa 1:
<?php // Create a new imagick object $imagick1 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); $imagick2 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/20190918234528/colorize1.png'); // Get the distortion with METRIC constant // as imagick::METRIC_ROOTMEANSQUAREDERROR $distortion = $imagick1->getImageDistortion($imagick2, 5); echo $distortion; ?>
Producción:
0.97254902124405
Programa 2:
<?php // Create a new imagick object $imagick1 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); $imagick2 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/20190918234528/colorize1.png'); // Get the distortion with METRIC constant // as imagick::METRIC_PEAKSIGNALTONOISERATIO $distortion = $imagick1->getImageDistortion($imagick2, 4); echo $distortion; ?>
Producción:
0.020707619325613
Programa 3:
<?php // Create a new imagick object $imagick1 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); $imagick2 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); // Get the distortion with METRIC constant // as imagick::METRIC_ROOTMEANSQUAREDERROR $distortion = $imagick1->getImageDistortion($imagick2, 4); echo $distortion; ?>
Producción:
0 because both images are same.
Referencia: https://www.php.net/manual/en/imagick.getimagedistortion.php