我需要一个用于此处描述的感知散列算法的 matlab 代码: http ://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html
基本上我希望这可以删除图像中的细节,只留下主要结构组件信息。
为此,我认为我需要以下步骤: 1. 减少 DCT。假设 DCT 是 32x32(),只保留左上角的 8x8。这些代表图片中的最低频率。
计算平均值。与平均哈希一样,计算平均 DCT 值(仅使用 8x8 DCT 低频值并排除第一项,因为 DC 系数可能与其他值显着不同,并且会偏离平均值)。
进一步降低 DCT。根据 64 个 DCT 值中的每一个值是高于还是低于平均值,将 64 个哈希位设置为 0 或 1。结果并没有告诉我们实际的低频;它只是告诉我们频率与平均值的非常粗略的相对比例。只要图像的整体结构保持不变,结果就不会改变;这可以毫无问题地在伽马和颜色直方图调整中存活。
处理后重建图像。
任何人都可以帮助完成上述任何一个步骤吗?我已经尝试了一些给出一些结果的代码(在下面的链接中),它还不完美: https ://stackoverflow.com/questions/26748051/extract-low-frequency-from-dct-coeffecients-of-an- matlab 中的图像