La función Imagick::getImageChannelDistortion() es una función incorporada en PHP que se usa para comparar los canales de imagen de una imagen con una imagen reconstruida y devuelve la métrica de distorsión especificada.
Sintaxis:
float Imagick::getImageChannelDistortion( Imagick $reference, int $channel, int $metric )
Parámetros: esta función acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- referencia: Especifica el objeto Imagick con el que comparar.
- canal: Especifica la constante de canal que es válida para su modo de canal. Para aplicar más de un canal, combine las constantes de tipo de canal usando operadores bit a bit.
- 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 (entero)
- imagick::METRIC_MEANABSOLUTEERROR (entero)
- imagick::METRIC_MEANSQUAREERROR (entero)
- imagick::METRIC_PEAKABSOLUTEERROR (entero)
- imagick::METRIC_PEAKSIGNALTONOISERATIO (entero)
- imagick::METRIC_ROOTMEANSQUAREDERROR (entero)
Excepciones: esta función lanza ImagickException en caso de error.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito.
Los siguientes programas ilustran la función Imagick::getImageChannelDistortion() en PHP:
Programa 1:
<?php // Create two new imagick object $imagick1 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/20190823154611/geeksforgeeks24.png'); $imagick2 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/20191112223241/trans9.png'); // Get the distortion with METRIC constant as imagick::METRIC_MEANABSOLUTEERROR $distortion = $imagick1->getImageChannelDistortion($imagick2, 0, 1); echo $distortion; ?>
Producción:
122728
Programa 2:
<?php // Create two new imagick object $imagick1 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/20190823154611/geeksforgeeks24.png'); $imagick2 = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/20190823154611/geeksforgeeks24.png'); // Get the distortion with METRIC constant // as imagick::METRIC_MEANABSOLUTEERROR $distortion = $imagick1->getImageChannelDistortion($imagick2, 0, 1); echo $distortion; ?>
Producción:
0
Nota: En el segundo ejemplo, la salida es 0 porque ambas imágenes son iguales.
Referencia: https://www.php.net/manual/en/imagick.getimagechanneldistortion.php