After $ im->cropImage method, $ im->subImageMatch doesn't work, before using $ im->subImageMatch, use $ im->setImagePage(0, 0, 0, 0);
The sequence is as follows:
$ im->cropImage();
$ im->setImagePage (0, 0, 0, 0);
$ im->subImageMatch()
(PECL imagick 3 >= 3.3.0)
Imagick::subImageMatch — Busca una subimagen en la imagen actual y devuelve una imagen de similitud
$Imagick
, array &$offset
= ?, float &$similarity
= ?): ImagickBusca una subimagen en la imagen actual y devuelve una imagen de similitud de tal manera que una posición de coincidencia exacta es completamente blanca y si ningún píxel coincide, negro, de lo contrario un cierto nivel de gris entre ambos. Asimismo, pueden pasarse los argumentos opcionales bestMatch y similarity. Tras llamar a la función, similarity será definido en el 'puntuación' de similitud entre la subimagen y la posición correspondiente en la imagen más grande, bestMatch contendrá un array asociativo con los elementos x, y, width, height que describen la región correspondiente.
Imagick
offset
similarity
Una nueva imagen que muestra la cantidad de similitud en cada píxel.
Ejemplo #1 Imagick::subImageMatch()
<?php
function subImageMatch($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick2 = clone $imagick;
$imagick2->cropimage(40, 40, 250, 110);
$imagick2->vignetteimage(0, 1, 3, 3);
$similarity = null;
$bestMatch = null;
$comparison = $imagick->subImageMatch($imagick2, $bestMatch, $similarity);
$comparison->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}
?>
After $ im->cropImage method, $ im->subImageMatch doesn't work, before using $ im->subImageMatch, use $ im->setImagePage(0, 0, 0, 0);
The sequence is as follows:
$ im->cropImage();
$ im->setImagePage (0, 0, 0, 0);
$ im->subImageMatch()