数字图像处理处理 大作业实验报告_第1页
数字图像处理处理 大作业实验报告_第2页
数字图像处理处理 大作业实验报告_第3页
数字图像处理处理 大作业实验报告_第4页
数字图像处理处理 大作业实验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理处理大作业实验报告PB11210***上上签MyZenith.N_3104_EVER实验一题目:线性插值改变图像大小实验目的:1、使用MATLAB编程实现对图片大小的改变操作,使所给图片达到所要求的效果。2、通过对MATLAB的编程加强对图像处理的认识,初步学习MATLAB在图像处理中的基本应用实验内容:在这一项目中,同学们需要实现基于双线性插值的图像缩放算法。作业中需实现如下功能:能够利用鼠标从实验图像中任意选取测试区域,并单独显示。使用双线性插值算法对测试区域进行缩放处理,输出如下结果,放大到原始分辨率的2倍,放大到原始分辨率的4倍,缩小到原始分辨率的1/2倍。实验原理:图像某点的值由最邻近的四个点联立方程决定。实验代码:在主函数中,使用switch函数分别调用子函数,并且之前选择需要放大或者缩小的倍数。代码如下:choice=('Yes');while(minus(choice,('Yes'))==0)clear;close;F=imread('monarch.bmp');I=imcrop(F);BR=I(:,:,1);BG=I(:,:,2);BB=I(:,:,3);[rows,cols]=size(BR);K=sqrt(str2double(inputdlg('ÇëÊäÈëËõ·Å±¶Êý','INPUTscalefactor',1,{'2'})));width=K*rows;height=K*cols;widthScale=rows/width;heightScale=cols/height;forx=1:width-2fory=1:height-2X=x*widthScale;Y=y*heightScale;if(X/double(uint16(X))==1.0)&&(Y/double(uint16(Y))==1.0)dstBR(x,y)=BR(int16(X),int16(Y));dstBG(x,y)=BG(int16(X),int16(Y));dstBB(x,y)=BB(int16(X),int16(Y));elsea=double(uint16(X));b=double(uint16(Y));BRx11=double(BR(a,b));BRx12=double(BR(a,b+1));BRx21=double(BR(a+1,b));BRx22=double(BR(a+1,b+1));BGx11=double(BG(a,b));BGx12=double(BG(a,b+1));BGx21=double(BG(a+1,b));BGx22=double(BG(a+1,b+1));BBx11=double(BB(a,b));BBx12=double(BB(a,b+1));BBx21=double(BB(a+1,b));BBx22=double(BB(a+1,b+1));w1=(b+1-Y)*(a+1-X);w2=(Y-b)*(a+1-X);w3=(b+1-Y)*(X-a);w4=(Y-b)*(X-a);dstBR(x,y)=uint8(BRx11*w1+BRx12*w2+BRx21*w3+BRx22*w4);dstBG(x,y)=uint8(BGx11*w1+BGx12*w2+BGx21*w3+BGx22*w4);dstBB(x,y)=uint8(BBx11*w1+BBx12*w2+BBx21*w3+BBx22*w4);endendendOUT(:,:,1)=dstBR;OUT(:,:,2)=dstBG;OUT(:,:,3)=dstBB;imshow(I);figure;imshow(OUT);options.Interpreter='tex';options.Default='Cancel';choice=questdlg('ÊÇ·ñ¼ÌÐø£¿','Ñ¡Ïî','Yes','No',options);end实验结果:选择缩放倍数:所选择的图像源文件如下:用鼠标标定所需要进行缩放的区域:程序正常运行后缩放效果:4倍放大程序正常运行后缩放效果:2倍放大程序正常运行后的缩放效果:缩小一倍实验二题目:高斯滤波及中值滤波处理人为添加的椒盐噪声和高斯噪声实验目的:对所给定的图像使用MATLAB添加高斯噪声和椒盐噪声;再用MATLAB程序实现中值滤波和高斯滤波;计算所得到结果图像的PSNR,对它们进行分析与比较,从而理解各种滤波方法的优点与特性。进一步熟悉MATLAB编程方式,使对MATLAB与数字图像处理有更加直观的理解与体验,加深感受MATLAB在数字图像处理中的重要作用。实验代码:一、读取源图像,同时标上”原始图像”M=imread('lena.png');subplot(2,3,1);imshow(M);title('ԭʼͼÏñ');二、加上噪声,同时加上说明,算出PSNRfunction[Im_noise]=noise(Im_org,noise)switchnoisecase'gaussian'Im_noise=gaunoise(Im_org);case'salt&pepper'Im_noise=spnoise(Im_org);endendfunction[Im_noise]=gaunoise(Im_org)I_doubleim=double(Im_org);Im_noise=uint8(I_doubleim+20*normrnd(0,1,size(I_doubleim)));endfunction[Im_noise]=spnoise(Im_org)Im_noise=Im_org;nois=rand(size(Im_org));Im_noise(nois<0.05)=0;Im_noise(nois>0.95)=255;end三、高斯滤波处理图像的高斯噪声,计算PSNRp=size(P1);x1=double(P1);x2=x1;fori=1:p(1)-3+1forj=1:p(2)-3+1c=x1(i:i+(3-1),j:j+(3-1));e=c(1,:);foru=2:3e=[e,c(u,:)];endmm=median(e);x2(i+(3-1)/2,j+(3-1)/2)=mm;endendJ=uint8(x2);subplot(2,3,5);imshow(J);k=8;fmax=2.^k-1;a=fmax.^2;e=double(J)-double(M);[m,n]=size(e);b=sum(sum(e.^2));PSNR=10*log10(m*n*a/b);title(['PSNR:',num2str(PSNR)]);四、中值滤波处理图像的椒盐噪声,计算PSNRfunction[Im_back]=spfilter(Im_noise)moban=[111;111;111];m=size(Im_noise,1);n=size(Im_noise,2);Im_double=double(Im_noise);Im_back=zeros(size(Im_noise));fori=2:m-1forj=2:n-1x1=Im_double(i-1:i+1,j-1:j+1,1).*moban;x2=Im_double(i-1:i+1,j-1:j+1,2).*moban;x3=Im_double(i-1:i+1,j-1:j+1,3).*moban;Im_back(i,j,1)=zhongzhi1(x1);Im_back(i,j,2)=zhongzhi1(x2);Im_back(i,j,3)=zhongzhi1(x3);endendIm_back=uint8(Im_back);endfunction[mid]=zhongzhi1(m)mm=zeros(9);fori=1:3forj=1:3mm((i-1)*3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论