我有两个图像,我需要在开始拼图的地方找到X坐标。开始时,我们只知道Y坐标-对于此图像,其51
这意味着我们可以在Y-51的一个像素行中裁剪图像并使用它-我在想这种方式,但是也许我们可以用另一种方式来做呢?
无论如何,我不知道下一步该怎么做-如何在php或cli中使用imagemagick找到X坐标
您想使用Imagick::subImageMatch()
方法。
Imagick::subImageMatch()
将用子图像匹配坐标更新$canvas = new Imagick("canvas.png");
$piece = new Imagick("piece.png");
$canvas->subImageMatch($piece, $offset, $similarity);
的位置。
$offset
[var_dump($offset);
/*
array(4) {
["x"]=>
int(213)
["y"]=>
int(72)
["width"]=>
int(55)
["height"]=>
int(55)
}
*/
将用一个浮点数更新,代表最佳匹配的接近程度。
$similarity
var_dump($similarity);
// float(0.34148957886102)
也将返回“热图”,但这仅对调试扫描有用。
Imagick::subImageMatch()
$matches = $canvas->subImageMatch($piece, $offset, $similarity);
$matches->writeImage('heatmap.png')