- 23
- 0
- 约2.7千字
- 约 13页
- 2021-06-02 发布于山东
- 举报
Matlab 的图像压缩技术
一.目的要求
掌握 Matlab 图像图像压缩技术原理和方法。理解有损压缩和无损压缩的概
念,了解几种常用的图像压缩编码方式,利用 matlab 进行图像压缩算法验证。
二.实验内容
1、观察颜色映像矩阵的元素
hot(8)
ans =
0 0
0 0
0
0
0
0
数据显示第一行是 1/3 红色,最后一行是白色。
2、 pcolor 显示颜色映像
n=16;
colormap(jet(n));
pcolor([1:n+1;1:n+1]);
title(Using Pcolor to Display a Color )Map);
图 2 显示颜色映像
3、 colorbar 显示当当前坐标轴的颜色映像
[x,y,z]=peaks;
mesh(x,y,z);
colormap(hsv);
axis([-3 3 -3 3 -6 8]);
colorbar;
图 3 显示当前坐标轴的颜色映像
4、图像格式转换
g=rgb2gray(I);
g=rgb2gray(I);
imshow(g),colorbar;
图 4-1 原图像
图 4-2 转换后的图像
5、求解图像的二唯傅里叶频谱
I=imread();
imshow(I)
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])
图 5-1 原图像
图 5-2 频谱图
将图像更换一下
I=imread();
imshow(I)
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])
图 5-3 原始图
图 5-4 频谱图
6、利用 DCT变换进行图像压缩
RGB=imread();
I=rgb2gray(RGB);
J=dct2(I);
imshow(log(abs(J)),[]),colormap(jet(64)),colorbar
图 6-1 DCT 变换后二维变换谱
J(abs(J)10)=0;
K=idct2(J); % 逆变换
figure,imshow(I) figure,imshow(K,[0 255])
图 6-2 原始图像
图 6-3 压缩还原后的图像
仔细看我们可以发现,压缩还原后的图像比较模糊。
7、利用离散余弦变换进行 JPEG图像压缩
I=imread();
I=im2double(I);
T=dctmtx(8); % 产生二维 DCT变换矩阵
B=blkproc(I,[8 8],P1.*x,T,T); % 改成点乘
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 ;zeros(4,8)] %二值掩膜用来压缩 DCT系数
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
B2=blkproc(B,[8 8],P1*x,mask); %
只保留
10 个系数
I2=blkproc(B2,[8 8],P1*x*P2,T,T); %
逆
DCT
subplot(1,2,1);
imshow(I);title(原图像 );
subplot(1,2,2);
imshow(I2);title( 压缩图像 );
图 7-1 原图像和第一种压缩后的图像
mask=[1 1 0 0 0 0 0 0;1 0 0 0 0 0 0 0 ;zeros(6,8)]
mask =
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
图 7-2 原图像和第二种压缩后的图像
mask=[1 0 0 0 0 0 0 0 ;zeros(7,8)]
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
图 7-3 原图像和第三种压缩后的图像
比较三种情况。 mask舍弃系数越多, 图像越模糊。 压缩应在最合理近似原图像下使用最少系数。
1、图像中哪些信息主要,哪些信息次要
原创力文档

文档评论(0)