DCT变换的学习
2013-03-01 14:06
155 查看
第一篇日志2013年2月28日,The last day of Feb,2013.
自己决定把图像压缩作为自己的研究方向,最近一周刚起步,看了几篇关于DCT变换的文章,之所以从DCT开始,是觉得它小波变换和热门的压缩感知要容易入手。而且对刚刚开始matlab使用的人来说,也比较容易操作。小波变换类型太多,滤波器的设置,以及一维、二维、离散、连续、正交、双正交等,还不太知道各种类型的适用范围及条件。压缩感知需要了解的东西更多,首先是信号的稀疏表示,很多文章都说,一个可以稀疏表示的信号,才能使用少量的观测恢复,对这一观点,我有很大疑惑,任何一幅静态图像都可以使用DCT变换或者小波进行稀疏表示,岂不是,任何图像都适用于压缩感知??第二个没想明白的问题就是,范数下的运算,为什么要求范数的最小值?慢慢明白的,读书百遍,其意自现。
下面是自己理解并编写的DCT程序。
clear;
clear all;
clear clc;
load wbarb;
subplot(2,2,1);
image(X);
title('源图像')
A=X-127;
B=mat2cell(A,8*ones(1,32),8*ones(1,32));
T=dctmtx(8);
mask=[1,1,1,1,0,0,0,0;
1,1,1,0,0,0,0,0;
1,1,0,0,0,0,0,0;
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 ];
for i=1:32
for j=1:32
D{i,j}=T*B{i,j}*T';
E{i,j}=mask*D{i,j};
F{i,j}=T'*E{i,j}*T;
end
end
G=cell2mat(F);
subplot(2,2,2);
image(G);
title('压缩后图像')
colormap(gray);
效果出来并不理想??呵呵,达不到matlab自带DCT的压缩效果。
找到一个小错误,减去127后并没有再加上,所以用G=cell2mat(F)+127代替上面的G=cell2mat(F)语句,结果同样不让人满意;
自己决定把图像压缩作为自己的研究方向,最近一周刚起步,看了几篇关于DCT变换的文章,之所以从DCT开始,是觉得它小波变换和热门的压缩感知要容易入手。而且对刚刚开始matlab使用的人来说,也比较容易操作。小波变换类型太多,滤波器的设置,以及一维、二维、离散、连续、正交、双正交等,还不太知道各种类型的适用范围及条件。压缩感知需要了解的东西更多,首先是信号的稀疏表示,很多文章都说,一个可以稀疏表示的信号,才能使用少量的观测恢复,对这一观点,我有很大疑惑,任何一幅静态图像都可以使用DCT变换或者小波进行稀疏表示,岂不是,任何图像都适用于压缩感知??第二个没想明白的问题就是,范数下的运算,为什么要求范数的最小值?慢慢明白的,读书百遍,其意自现。
下面是自己理解并编写的DCT程序。
clear;
clear all;
clear clc;
load wbarb;
subplot(2,2,1);
image(X);
title('源图像')
A=X-127;
B=mat2cell(A,8*ones(1,32),8*ones(1,32));
T=dctmtx(8);
mask=[1,1,1,1,0,0,0,0;
1,1,1,0,0,0,0,0;
1,1,0,0,0,0,0,0;
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 ];
for i=1:32
for j=1:32
D{i,j}=T*B{i,j}*T';
E{i,j}=mask*D{i,j};
F{i,j}=T'*E{i,j}*T;
end
end
G=cell2mat(F);
subplot(2,2,2);
image(G);
title('压缩后图像')
colormap(gray);
效果出来并不理想??呵呵,达不到matlab自带DCT的压缩效果。
找到一个小错误,减去127后并没有再加上,所以用G=cell2mat(F)+127代替上面的G=cell2mat(F)语句,结果同样不让人满意;
相关文章推荐
- DCT变换学习
- OpenGL学习笔记-OpenGL的变换和矩阵
- 从零开始学习OpenGL ES之七 – 变换和矩阵
- DCT快速变换
- 图像处理学习笔记之图像的几何变换(4)镜像变换
- 人脸光照调整之DCT变换
- Python OpenCV学习笔记之:hough变换检测圆形
- Opencv学习手册(四)--- 图像灰度变换
- Opencv2系列学习笔记11(霍尔夫变换)
- 白手起家学习数据科学 ——处理数据之“尺度变换篇”(七)
- Rxjava的学习之变换操作符—scan
- [转] DCT变换、DCT反变换、分块DCT变换
- 【OpenCV学习】Laplace变换(视频边界检测)
- 关于离散小波框架变换以及多孔算法(a trous)的学习感悟
- [FFT] 快速傅里叶变换学习笔记
- 第4章 学习Shader所需的数学基础(下)(坐标空间及其变换)
- Opencv学习---霍夫变换
- DCT变换、DCT反变换、分块DCT变换
- [离散时间信号处理学习笔记] 7. z变换
- DCT变换及量化的c++实现(基于opencv矩阵运算)