【发布时间】:2014-11-04 22:58:11
【问题描述】:
我需要一个用于此处描述的感知散列算法的 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-image-in-matlab
【问题讨论】:
-
A quick search 产生了 this result 和其他可能有趣的页面。也许你可以从这个开始。 -- 另外,我不确定您想要从第 4 步中得到什么,但通常散列是一种单向过程。