La función Imagick::getImageChannelDistortions() es una función incorporada en PHP que se usa para comparar uno o más canales de imagen de una imagen con una imagen reconstruida y devuelve las métricas de distorsión especificadas. La diferencia entre getImageChannelDistortion() y getImageChannelDIstortions() es que este último no acepta necesariamente un parámetro de canal, por lo que también puede tomar solo dos parámetros.
Sintaxis:
float Imagick::getImageChannelDistortions( Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT)
Parámetros: esta función acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- $referencia: Especifica el objeto Imagick de la imagen.
- $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)
- $channel: Especifica la constante de canal que es válida para el modo de canal. Utilice el operador bit a bit para combinar más de diez constantes de tipo de canal. El valor predeterminado de las constantes del canal es Imagick::CHANNEL_DEFAULT.
Excepciones: esta función lanza ImagickException en caso de error.
Valor de retorno: esta función devuelve una doble distorsión del canal que describe.
Los siguientes programas ilustran la función Imagick::getImageChannelDistortions() 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/20190916133223/diamond.png'); // Get the distortion with METRIC constant as imagick::METRIC_MEANABSOLUTEERROR $distortion = $imagick1->getImageChannelDistortions($imagick2, 1); echo $distortion; ?>
Producción:
23925
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->getImageChannelDistortions($imagick2, 1); echo $distortion; ?>
Producción:
0 because both of the images are same.
Programa 3:
<?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/20190916133633/gausian.png'); // Get the distortion with METRIC constant as imagick::METRIC_MEANSQUAREERROR $distortion = $imagick1->getImageChannelDistortions($imagick2, 2); echo $distortion; ?>
Producción:
0.048318723480804
Referencia: https://www.php.net/manual/en/imagick.getimagechanneldistortions.php