资源描述:
《robot vision 机器人视觉 作业3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ROBOTVISION-HomeWork#3Date:2012/9/15Due:2012/9/24一、Wavelet影像处理-以peppers.png为处理对象。1.利用matlab的现成指令将此图进行onelevel与twolevels的小波变换,并将对应的小波系数整合成下面的方式呈现。注意:twolevels时第二层的系数cA2,cH2,cV2,cD2堆叠要先形成cA1(对应于onelevel时的cA1),叠起后的大小可能大cH1,cV1,cD1(因为pixels/2近似造成),要先将cA1的大小调回cH1的
2、大小,再形成最后的图像矩阵。OneLevelTwoLevels2.针对onelevel的小波变换系数,请拿掉最高频的cD1系数(即以零矩阵取代),透过inverse小波变换形成新的图像,试问与原图间的PSNR差多少?答:Matlab代码如下所示:%%%%%%%%%%%%%%%第一小题%%%%%%%%%%%%%%%%清空所有数据,图表,并且清屏clearall;closeall;clc;%读取图像对应的矩阵并转化成灰度图x0=imread('peppers.png');x=rgb2gray(x0);nbcol=25
3、5;%进行一阶小波变换[cA1,cH1,cV1,cD1]=dwt2(x,'db1');%对小波变换的结果进行伪彩色编码cod_x=wcodemat(x,nbcol);cod_cA1=wcodemat(cA1,nbcol);cod_cH1=wcodemat(cH1,nbcol);cod_cV1=wcodemat(cV1,nbcol);cod_cD1=wcodemat(cD1,nbcol);%小波变换生成的四个图像结合成一个大图像dec2d=[cod_cA1cod_cH1;cod_cV1cod_cD1];%显示一阶小
4、波变换的结果figurecolormap(gray);imagesc(dec2d);title('Single-levelWavelet');%进行二阶小波变换,并且从中提取出一阶和二阶A,H,V,D分量[C,S]=wavedec2(x,2,'db1');lv2_size=S(1,1)*S(1,2);lv1_size=S(3,1)*S(3,2);cA2=reshape(C(1:lv2_size),S(1,1),S(1,2));cH2=reshape(C((1+lv2_size):2*lv2_size),S(1,1
5、),S(1,2));cV2=reshape(C((1+2*lv2_size):3*lv2_size),S(1,1),S(1,2));cD2=reshape(C((1+3*lv2_size):4*lv2_size),S(1,1),S(1,2));lv2_cH1=reshape(C((1+4*lv2_size):(lv1_size+4*lv2_size)),...S(3,1),S(3,2));lv2_cV1=reshape(C((1+lv1_size+4*lv2_size):...(2*lv1_size+4*lv2_
6、size)),S(3,1),S(3,2));lv2_cD1=reshape(C((1+2*lv1_size+4*lv2_size):...(3*lv1_size+4*lv2_size)),S(3,1),S(3,2));%对小波变换的结果进行伪彩色编码cod_cA2=wcodemat(cA2,nbcol);cod_cH2=wcodemat(cH2,nbcol);cod_cV2=wcodemat(cV2,nbcol);cod_cD2=wcodemat(cD2,nbcol);cod_lv2_cH1=wcodemat(l
7、v2_cH1,nbcol);cod_lv2_cV1=wcodemat(lv2_cV1,nbcol);cod_lv2_cD1=wcodemat(lv2_cD1,nbcol);%小波变换生成的图像分量结合成一个大图像dec2d_2=[[cod_cA2,cod_cH2;cod_cV2,cod_cD2],cod_lv2_cH1;...cod_lv2_cV1,cod_lv2_cD1];%显示一阶小波变换的结果figurecolormap(gray);imagesc(dec2d_2);title('2-levelWavele
8、t');%%%%%%%%%%%%%%%第二小题%%%%%%%%%%%%%%%%消掉高频分量并进行逆小波变换[M,N]=size(cD1);y=idwt2(cA1,cH1,cV1,zeros(M,N),'db1');%画出逆小波变换后的结果figure;colormap(gray);imagesc(y);title('InverseWavelet');%计算信噪比(调用了老