将图像中的形状与 PHP 进行比较

Compare a shape in an image with PHP

我正在尝试比较 php 中的形状。我有一个包含很多图像的数据库,在这些图像中有一个形状(主要在图像的中心)。现在我想将这些图像与形状进行比较。

输入的是一个形状 (png),其大小与数据库中的图像完全相同。

我制作了一个函数,将形状的颜色变成黑色(背景变成白色)

输入是这样的:

原文是这样的:

我可以比较图像中的每个像素并跟踪有多少黑色像素相同,但这会花费很多 CPU,我认为它不会每次都有效。

我也可以使用另一种语言,例如 python,但我真的很想在 PHP 中解决这个问题。有没有人有想法以实用的方式做到这一点?

问题“Compare 2 images in php”中的答案与我预期的不同。我需要比较图像的一部分(在示例中是白色背景,但背景中可能有一些噪音)

这似乎可以通过 ImageMagick 中的 trimImage() function 实现(命令行上的 -trim 标志)。考虑到您已经能够将图像转换为黑色前景和白色背景,此功能应该始终如您所愿。此时只需比较您链接的问题中所述的图像。

这是在图像的命令行上使用 trim 填充的结果:


我假设你做的功能是相似的to the algorithm in findimagedupes。如果没有,你应该借用这个想法。