数字信号处理课程设计报告
题目: 图像处理
姓名:
学号:
姓名:
学号:
答辩时间:
1. 题目要求:
任务一、输入一幅数字图像并使用 DCT 变换以不同的压缩比压缩图像,要求:
1. 显示原图像和压缩后图像。
2. 比较使用不同压缩比压缩的图像,讨论压缩比与图像质量间的关系。
3. 计算并绘出不同压缩比下的均方误差 MSE,讨论压缩比和 MSE 的关
系。
任务二、使用其他压缩算法重复上述步骤,并与 DCT 压缩的结果作对比。
任务三、从原图移除一些像素点,尝试用一些去噪算法尽可能准确地还原这些像
素点,要求:
1. 显示原图像、移除像素后的图像和恢复出的图像。
2. 比较不同去噪算法的 MSE 值。
2. DCT 图像压缩设计思路与过程
2.1 设计思路:
(1)涉及到的知识点
DCT 数据压缩的基本思想是:由于 DCT 的能量聚集特性,对一幅图像进行离
散余弦变换后,许多有关图像的重要可视信息都集中在 DCT 系数矩阵的左上角,
也就是低频部分。DCT 系数矩阵左上角第一个值称为 DC 系数,是整个矩阵的平
均值,其余的称为 AC 系数,越靠近左上角对应的频率越低,越靠近右下角对应
的频率越高。
在图像中,低频部分的信息量要大于高频部分的信息量,尽管低频部分的数
据量比高频部分的数据量要小很多,例如删除掉占了 50%存储空间的高频部分,
信息量的损失可能还不到 5%。因此,DCT 数据压缩舍弃了高频系数,并对余下的
系数进行量化减小数据量,以达到图像压缩的目的。
(2)方案分析
DCT 变换的实现有两种方法,第一种是使用 DCT 变换矩阵对 8x8 的图像块进
行处理,第二种是直接对整个图像进行 2D-DCT 变换。
DCT 变换矩阵法的优点在于将图像分割成 8x8 的图像块进行处理大幅度降低
了计算的复杂度,缺点在于将图像分块会导致分块效应,在分块的边界出现突变,
在一定程度上影响了解压缩图像的质量。
直接对整个图像进行 2D-DCT 变换的优点在于避免了分块效应,使得解压缩
图像的保真度得到了保障,缺点在于计算复杂度高。
本实验中采用上述两种方案进行分析比较。
(3)设计框架和流程
a. DCT 变换矩阵法
1. 将输入图像分解成 8x8 的图像块
2. 对每个图像块进行 DCT 变换
3. 对 DCT 系数矩阵分别与不同的 MASK 作与运算(量化)
4. 对每个图像块进行 IDCT 变换
5. 将 8x8 图像块合并为一张图像
6. 比较步骤 3 中使用不同 MASK 作量化的还原图像 MSE
b. 整图 DCT 变换
1. 直接对整幅图像进行 DCT 变换
2. 对 DCT 系数矩阵做不同程度的量化
3. 对量化后的 DCT 系数矩阵进行 IDCT 反变换得最终图像
4. 比较不同量化程度下还原图像 MSE
2.2 设计过程:
(1)核心代码
a. DCT 变换矩阵法
% 定义DCT变换矩阵
t = dctmtx(8);
% 将原图的每个8x8块进行DCT变换
y = blkproc(doubleGray, [8 8], 'P1*x*P2', t, t');
% 量化矩阵
mask = [1 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0];
% 对DCT系数矩阵进行量化
my = blkproc(y, [8 8], 'P1.*x', mask);
% 对每个8x8块进行IDCT变换,恢复图像
y = blkproc(my, [8 8], 'P1*x*P2', t', t);
b. 整图DCT变换
% 对整幅图像进行DCT变换
dctSeries = dct2(doubleData);
% 对系数矩阵作不同比例的量化
for i = 1:rows
for j = 1:cols
if (i+j>(rows+cols)*ratio)
dctSeries(i,j) = 0;
end
end
end
% 对DCT系数矩阵作IDCT变换,恢复图像
y = idct2(dctSeries);
(2)生成图与数据
a. DCT 变换矩阵法
量化系数 1 的压缩图像对比 MSE= 0.0039
量化系数 2 的压缩图像对比 MSE= 0.0015
量化系数 3 的压缩图像对比 MSE= 8.7003e-04
量化系数 8 的压缩图像对比 MSE= 1.6942e-04
舍弃低频 2 位的压缩图像对比 MSE= 0.6973