PHP | Función Imagick getImageChannelDistortions()

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

Publicación traducida automáticamente

Artículo escrito por gurrrung y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *