我需要一个 Java 库、代码片段……来获取 JPEG 文件的 64 个 DCT 系数的频率分布。
有任何想法吗?谢谢!
如果您对特定文件的分发感兴趣,那么您可以尝试将其转换为 bmp 并使用我在问题中提供的代码:
您可能需要弱化它才能使用 java。这个想法是将所有 64 个系数存储在每个 8*8 块的数组中。然后计算每个系数的每个值的频率,例如 0,0(DC)或 0,1 或 8,8(最高频率),并在 y 轴上绘制频率,在 x 轴上绘制值。您将获得 64 个图,每个系数一个。
直接从 JPEG 文件中获取 DCT 系数似乎没有简单的答案。解压缩图像并重新应用 DCT 变换是一种合理的近似,但它确实会引入舍入误差。
我发现直接从文件中获取 JPEG 系数的唯一解决方案是使用 JNA 连接到本机 JPEG 库。您要求提供库或代码片段。我编写了一个应该满足您需求的 Java 库。我的代码非常粗糙,但可以轻松扩展。这里:https ://github.com/markzampoglou/dct-extraction