- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab的图像压缩技术综述
Matlab的图像压缩技术
一.目的要求
掌握Matlab图像图像压缩技术原理和方法。理解有损压缩和无损压缩的概念,了解几种常用的图像压缩编码方式,利用matlab进行图像压缩算法验证。
二.实验内容
1、观察颜色映像矩阵的元素
hot(8)
ans =
0.3333 0 0
0.6667 0 0
1.0000 0 0
1.0000 0.3333 0
1.0000 0.6667 0
1.0000 1.0000 0
1.0000 1.0000 0.5000
1.0000 1.0000 1.0000
数据显示第一行是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 原图像saturn.png
图4-2转换后的图像
5、求解图像的二唯傅里叶频谱
I=imread(cameraman.tif);
imshow(I)
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])
图5-1 原图像cameraman.png
图5-2 频谱图
将图像更换一下
I=imread(pout.tif);
imshow(I)
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])
图5-3 原始图 pout.tif
图5-4 频谱图
6、利用DCT变换进行图像压缩
RGB=imread(peppers.png);
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(cameraman.tif);
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=blk
文档评论(0)