Open In App

PHP | Imagick compareImageChannels() Function

The Imagick::compareImageChannels() function is an inbuilt function in PHP which is used to return the difference between one or more than one images. Syntax:

array Imagick::compareImageChannels( Imagick $image, int $channelType, int $metricType )

Parameters: This function accepts three parameters as mentioned above and described below:



Return Value: It returns an array of new_wand and distortion. Errors/Exceptions: It throws ImagickException while error occurred. Below program illustrates the Imagick::compareImageChannels() function in PHP: Program: 




<?php
 
// Store the image path into variables
$imagePath1 =
"https://cdncontribute.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-9.png";
 
$imagePath2 =
"https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200.png";
 
$imagePath3 =
"https://cdncontribute.geeksforgeeks.org/wp-content/uploads/negateImage.png";
 
// Create new Imagick object
$imagick1 = new \Imagick($imagePath1);
$imagick2 = new \Imagick($imagePath2);
$imagick3 = new \Imagick($imagePath3);
 
// Use compareImageChannels() function to find
// the difference between images
$diff12 = $imagick1->compareImageChannels($imagick2,
        Imagick::CHANNEL_ALL, Imagick::METRIC_MEANABSOLUTEERROR);
 
$diff13 = $imagick1->compareImageChannels($imagick3,
        Imagick::CHANNEL_ALL, Imagick::METRIC_MEANABSOLUTEERROR);
 
// Print the difference in array
print_r($diff12);
print_r($diff13);
 
?>

Output:



Array ( [0] => Imagick Object ( ) [1] => 0.084920034052215 ) 
Array ( [0] => Imagick Object ( ) [1] => 0.63074787218949 ) 

Reference: https://www.php.net/manual/en/imagick.compareimagechannels.php

Article Tags :