假设我有两个系统,它们采用相同的绘图命令并开始在各自的平台上绘图(即 HTML Canvas)。完成此操作后,我想保存并比较这两个图像,以确保它们在感知上是相同的,即使形状和颜色可能略有偏差(不可察觉的差异)。
我尝试使用感知散列,但不幸的是它似乎对这项任务不够敏感。因此,例如,如果您在一个上设置 1000 个全黑像素(对于 1920x1080 的图像)并将其与另一个进行比较,这在感知上将非常明显,但 pHash 算法仍将返回 100% 匹配。
我尝试对所有像素使用最近邻平均。基本上,对于每个像素,我将它的值与它的许多相邻像素的值取平均值,并将这个值设置回像素。这似乎适用于具有硬边和直线的形状,因为它只需要非常小的局部变化就可以感知到不同。对于长曲线,这不是很好,因为在整个曲线上可能会有适度的变化,但在感知上仍然被认为是相同的。
是否存在一种算法可以处理许多可能的形状/曲线的感知上的微小变化?我应该使用多种算法来处理这项任务吗?