【发布时间】:2015-12-28 13:22:21
【问题描述】:
我将所有像素的 RGB 值输入到
R=[],
G=[],
B=[]
图片中的数组。它们是包含数组的 8 位 [0-255] 值。而且我需要使用傅里叶变换以有损方法压缩图像。
N 将是像素数。 n 是 i 的数组。 k 和假想的 j 会是什么?
我可以把这个方程实现成编程语言并得到压缩的图像文件吗?
或者我需要使用转换方程而不是 RGB 来获得不同的值?
【问题讨论】:
-
您使用什么语言工作?如果你真的想自己实现这个方程,你可能应该使用标准的复数类型。
k值似乎是针对正在计算的傅立叶系数。 -
我正在使用 C#。但我也可以使用 Java。
-
我为您的问题推荐了一些更合适的标签。您是否能够使用预先构建的 FFT 而不是自己构建一个?您可能还想单独在每个通道上执行 FFT。 FWIW,通常转换为 YUV 颜色空间并对 UV 通道进行下采样。
-
感谢你们伟大的 cmets。我还需要构建 FFT:/
-
无论如何,最好的办法是查看 JPEG 的工作原理并实施类似的解决方案 en.wikipedia.org/wiki/JPEG。在 JPEG 中,首先对 YUV 通道应用 2D 离散余弦变换,然后应用量化矩阵来降低不太重要的 DCT 系数的精度。随后执行运行长度编码以进行实际压缩。你可能想做类似的事情。
标签: image-processing compression jpeg fft dct