- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、实验目的:
1、掌握图像采样中降采样的matlab实现;
2、掌握对图像添加噪声的方法以及用滤波器对图像去噪的matlab实现;
3、掌握图像变换编码的matlab实现并用直方图评估编码。
二、实验环境:
Matlab 7
三、实验内容:
1、对图像的降采样
降采样函数:t=g(1:8:size_a(1),1:8:size_a(2));
结果:
通过观察原图与降采样后图像的对比,可以发现通过降低采样像素的个数降低了图像的分辨率,导致图像出现了棋盘格。对于不同的采样比例,分辨率降低的幅度也不同。Type为噪声类型,可以为gaussian、localvar、passion、salt pepper、speckle
给图片添加高斯噪声:
3、滤波
滤波函数:
H=fspecial(type);
H=fspecial(type,parameters);
Type为滤波器类型,可以为 average、disk、gaussian、laplacian等。
用邻域平均法去噪:
对于不同的模板,平滑滤波的去噪效果不同,模板越大,效果越好,但是对图像本身的模糊影响也越大。
中值滤波不像平滑滤波那样使图像边界模糊,他在衰减噪声的同时,保持了图像细节的清晰。
4、对图像变换编码
用DCT对图像进行变换编码:
计算二维DCT矩阵函数:T=dctmtx(n);
结果:
均方根误差erms =0.0625
通过对比原图与压缩后的图像可以发现,DCT变换方法对重建图像品质在视觉上影响很小。但是对于系数的丢弃还是导致了图像细节的丢失。
通过对比原图的直方图与预测误差直方图,图片的熵有一定的减少,与图片的细节损失有直接性关联。
四、总结:
附:
以上实验所用代码:
降采样:
I=imread(sunflower.jpg);
I=rgb2gray(I);
% 生成高斯滤波器的核
w=fspecial(gaussian,3,0.5);
size_a=size(I);
% 进行高斯滤波
g=imfilter(I,w,conv,symmetric,same);
% 降采样
t=g(1:8:size_a(1),1:8:size_a(2));
% 显示处理结果
figure;
imshow(I);axis on;gtext(原图);
figure;
imshow(t);axis on;gtext(降采样后图像);
加噪去噪:
%给图像添加高斯噪声
I=imread(sunflower.jpg);
I=rgb2gray(I);
II=imnoise(I,gaussian,0,0.01);
figure;
imshow(I);axis on;gtext(原图);
figure;
imshow(II);axis on;gtext(添加高斯噪声图像)
%邻欲平均法去噪
k1=filter2(fspecial(average,3),II);
k2=filter2(fspecial(average,7),II);
figure;
subplot(121),imshow(uint8(k1));axis on;gtext(3x3模板平滑滤波);
subplot(122),imshow(uint8(k2));axis on;gtext(7x7模板平滑滤波);
%中值滤波去噪
k3=medfilt2(II);
k4=medfilt2(II,[5 5]);
figure;
subplot(121),imshow(uint8(k3));axis on;gtext(3x3模板中值滤波);
subplot(122),imshow(uint8(k4));axis on;gtext(5x5模板中值滤波);
DCT变换编码:
initialimage=imread(sunflower.jpg);
initialimage=rgb2gray(initialimage);
initialimage=double(initialimage)/255;
figure(1);
imshow(initialimage);axis on;title(原图);
%对图像进行DCT
t=dctmtx(8);
dctcoe=blkproc(initialimage,[8 8],P1*x*P2,t,t);
coevar=im2col(dctcoe,[8 8],distinct);
coe=coevar;
[y,ind]=sort(coevar);
[m,n]=size(coevar);
%舍去不重要的系数
snum=64-64*cr;
for i=1:n
coe(ind(1:snum),i)=0;
end
b2=col2im(coe,[8 8],[375 500],distinct);
%对截取后的变换系数
文档评论(0)