Robot Vision 机器人视觉 作业3.doc

上传人:ni****g 文档编号:542941738 上传时间:2022-09-23 格式:DOC 页数:7 大小:581.18KB
返回 下载 相关 举报
Robot Vision 机器人视觉 作业3.doc_第1页
第1页 / 共7页
Robot Vision 机器人视觉 作业3.doc_第2页
第2页 / 共7页
Robot Vision 机器人视觉 作业3.doc_第3页
第3页 / 共7页
Robot Vision 机器人视觉 作业3.doc_第4页
第4页 / 共7页
Robot Vision 机器人视觉 作业3.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Robot Vision 机器人视觉 作业3.doc》由会员分享,可在线阅读,更多相关《Robot Vision 机器人视觉 作业3.doc(7页珍藏版)》请在金锄头文库上搜索。

1、ROBOT VISION - Home Work #3Date: 2012/9/15 Due:2012/9/24一、 Wavelet影像处理 - 以peppers.png为处理对象。1. 利用matlab的现成指令将此图进行one level 与two levels 的小波变换,并将对应的小波系数整合成下面的方式呈现。注意:two levels时第二层的系数cA2, cH2, cV2, cD2堆叠要先形成cA1(对应于one level时的cA1),叠起后的大小可能大cH1,cV1,cD1(因为pixels/2近似造成),要先将cA1的大小调回cH1的大小,再形成最后的图像矩阵。 One Le

2、vel Two Levels2. 针对one level的小波变换系数,请拿掉最高频的cD1系数(即以零矩阵取代),透过inverse小波变换形成新的图像,试问与原图间的PSNR差多少?答:Matlab代码如下所示:% 第一小题 % 清空所有数据,图表,并且清屏clear all;close all;clc;% 读取图像对应的矩阵并转化成灰度图x0=imread(peppers.png);x=rgb2gray(x0);nbcol=255;% 进行一阶小波变换cA1,cH1,cV1,cD1=dwt2(x,db1);% 对小波变换的结果进行伪彩色编码cod_x=wcodemat(x,nbcol);

3、cod_cA1=wcodemat(cA1,nbcol);cod_cH1=wcodemat(cH1,nbcol);cod_cV1=wcodemat(cV1,nbcol);cod_cD1=wcodemat(cD1,nbcol);% 小波变换生成的四个图像结合成一个大图像dec2d=cod_cA1 cod_cH1;cod_cV1 cod_cD1 ;% 显示一阶小波变换的结果figurecolormap(gray);imagesc(dec2d);title(Single-level Wavelet);% 进行二阶小波变换,并且从中提取出一阶和二阶A,H,V,D分量C,S=wavedec2(x,2,db

4、1);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),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_siz

5、e),.S(3,1),S(3,2);lv2_cV1=reshape(C(1+lv1_size+4*lv2_size):.(2*lv1_size+4*lv2_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(cD

6、2,nbcol);cod_lv2_cH1=wcodemat(lv2_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-level Wavelet);% 第二小题 % 消掉

7、高频分量并进行逆小波变换M,N=size(cD1);y=idwt2(cA1,cH1,cV1,zeros(M,N),db1);% 画出逆小波变换后的结果figure;colormap(gray);imagesc(y);title(Inverse Wavelet);% 计算信噪比(调用了老师写的psnr.m函数)xy_psnr=psnr(x,y);disp(The psnr between image x and y is num2str(xy_psnr);% Function: psnr.m %PSNR calculate the PSNR between two gray images.% P

8、SNR = psnr(f1,f2)% f1, f2 are two input imagesfunction PSNR = psnr(f1, f2) bits=8; if numel(size(f1)2 m1,n1,s1=size(f1); f1=rgb2gray(f1);else m1,n1=size(f1);endif numel(size(f2)2 m2,n2,s2=size(f2); f2=rgb2gray(f2);else m2,n2=size(f2);endif m2=m1 |n2=n1 error(Error!);end L = 2.bits - 1; a = L.2; e =

9、double(f1) - double(f2); MSE = sum(sum(e.2); PSNR = 10*log10(m1*n1*a/MSE); 画出的图像如下所示:一阶小波变换结果:二阶小波变换结果:二、 Wooden cube影像处理分析 以Wooden Gripper 3.png为处理对象。1. 尝试将不同的filter和threshold的上下界范围搭配,以凸显中间的cube。2. 进一步,筛选上述cube的边界出来.答:本文采用Gabor Filter,之后尝试不同的Threshold上下界范围。再确定上下界的过程中,先随机产生多对上下界,生成对应的图像,从中挑选出能够凸显中间C

10、ube的上下界,将符合条件的上下界做平均化处理,得到最终上下界(147,241)Matlab代码如下所示:% 清空所有数据,图表,并且清屏clear all;close all;clc;% 读取图像对应的矩阵并转化成灰度图img0=imread(Wooden Gripper 3.png);img=rgb2gray(img0);% 建立Gabor示波器模型phi=pi/2;theta=2;sigma=0.65*theta;filterSize=6;G=zeros(filterSize);for i=(0:filterSize-1)/filterSize for j=(0:filterSize-1

11、)/filterSize xprime=j*cos(phi); yprime=i*sin(phi); K=exp(2*pi*theta*sqrt(-1)*(xprime+yprime); G(round(i+1)*filterSize),round(j+1)*filterSize)=.exp(-(i2+j2)/(sigma2)*K; endend% 显示经过滤波之后的图像J=uint8(abs(conv2(double(img),G);figure;imshow(J);% % 随机产生Threshold上下界,多次执行,% 选取出能凸显中间的cube的多组上下界,% 在进行平均处理,得到一对上下界(147,241)%sum=0;for i=randi(100,200,1,3) for j=randi(150,255,1,3) if j=lobo;a2=real(in)=upbo;out=and(a1,a2);end生成的图像如下所示:经过Gabor Filter处理后的图像:再经过Threshold(147,241)之后的图像:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号