Imagick::subImageMatch

(PECL imagick 3 >= 3.3.0)

Imagick::subImageMatch在当前图像中搜索子图像并返回相似度图像

描述

public Imagick::subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick

在当前图像中搜索子图像并返回相似度图像,使得完全匹配的位置完全为白色,如果没有任何像素匹配,则为黑色,否则为介于两者之间的某个灰色等级。您也可以传入可选参数 bestMatch 和 similarity。调用该函数后,similarity 将被设置为子图像与较大图像中匹配位置之间相似度的“分数”,bestMatch 将包含一个关联数组,其中包含元素 x、y、width、height,这些元素描述匹配区域。

参数

Imagick

offset

similarity

一个新的图像,显示每个像素的相似度。

返回值

示例

示例 #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();
}

?>

添加注释

用户贡献的注释 1 个注释

inipel at ya dot ru
2 年前
在 $im->cropImage 方法之后,$im->subImageMatch 无法工作,在使用 $im->subImageMatch 之前,请使用 $im->setImagePage(0, 0, 0, 0);

顺序如下
$im->cropImage();
$im->setImagePage(0, 0, 0, 0);
$im->subImageMatch()
To Top