ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:1,004.32KB ,
资源ID:7655827      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7655827.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《数字图像处理》作业题目.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《数字图像处理》作业题目.docx

1、数字图像处理作业题目数字图像处理作业 班级: Y100501 * * * 学号: * 一、编写程序完成不同滤波器的图像频域降噪和边缘增强的 算法并进行比较,得出结论。频域降噪。对图像而言,噪声一般分布在高频区域,而图像真是信息主要集中在低频区,所以,图像降噪一般是利用低通滤波的方法来降噪。边缘增强。图像的边缘信息属于细节信息,主要由图像的高频部分决定,所以,边缘增强一般采取高通滤波,分离出高频部分后,再和原频谱进行融合操作,达到边缘增强,改善视觉效果,或者为进一步处理奠定基础的目的。1频域降噪,主程序如下:I=imread(lena.bmp); %读入原图像文件J=imnoise(I,gaus

2、sian,0,0.02);%加入高斯白噪声A=ilpf(J,0.4);%理想低通滤波figure,subplot(222);imshow(J);title(加噪声后的图像);subplot(222);imshow(A);title(理想低通滤波);B=blpf(J,0.4,4);%巴特沃斯低通滤波subplot(223);imshow(B);title(巴特沃斯低通滤波);C=glpf(J,0.4);%高斯低通滤波subplot(224);imshow(C);title(高斯低通滤波);用到的滤波器函数的程序代码如下:function O=ilpf(J,p) %理想低通滤波,p是截止频率f1,

3、f2=freqspace(size(J),meshgrid);hd=ones(size(J);r=sqrt(f1.2+f2.2);hd(rp)=0;y=fft2(double(J);y=fftshift(y);ya=y.*hd;ya=ifftshift(ya);ia=ifft2(ya);O=uint8(real(ia);function O=blpf(J,d,n) %巴特沃斯低通滤波器,d是截止频率,n是阶数f1,f2=freqspace(size(J),meshgrid);hd=ones(size(J);r=f1.2+f2.2;for i=1:size(J,1) for j=1:size(J

4、,2) t=r(i,j)/(d*d); hd(i,j)=1/(tn+1); endendy=fft2(double(J);y=fftshift(y);ya=y.*hd;ya=ifftshift(ya);ia=ifft2(ya);O=uint8(real(ia);function O=glpf(J,D) %高斯滤波器,D是截止频率f1,f2=freqspace(size(J),meshgrid);r=f1.2+f2.2;Hd=ones(size(J);for i=1:size(J,1) for j=1:size(J,2) t=r(i,j)/(D*D); Hd(i,j)=exp(-t); ende

5、ndY=fft2(double(J);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);ia=ifft2(Ya);O=uint8(real(ia);运行结果如图1所示。从结果可以看出,三种滤波器都可以对图像进行降噪,经滤波器滤波后,图像更噪声部分得到抑制,但是细节部分变得模糊。这是因为,细节信息分布在高频部分,降噪会对图像起到平滑作用,细节部分减弱。2 边缘增强,程序如下:J=imread(moon.tif); figuresubplot(121),imshow(J);title(原始图像);f1,f2=freqspace(size(J),meshgrid);r=

6、f1.2+f2.2;D=0.3;Hd=ones(size(J);for i=1:size(J,1) for j=1:size(J,2) t=r(i,j)/(D*D); Hd(i,j)=1-exp(-t); %高斯高通滤波 endendY=fft2(double(J);Y=fftshift(Y);Ya=Y.*Hd; %高斯高通滤波%Ya=ifftshift(Ya);ia=Y+1.4*Ya; %原始图像频谱加上1.4倍的高频频谱Ya=ifftshift(ia);ia=ifft2(Ya);O=uint8(real(ia);subplot(122),imshow(O);title(边缘增强后的图像);

7、运行结果如下图示:边缘增强采用高斯高通滤波器将高频频谱过滤出来然后乘以1.4倍以后与原图像频谱详加,然后对所得频谱进行反变换得到增强后的图像。也可以采用其他滤波器,比如巴特沃斯滤波器或者理想高通滤波器等。从结果可以看出高频加强后图像细节增强,边缘部分更容易分辨。二、编写程序完成不同锐化方法的图像锐化的算法并进行比较,得出结论。图像锐化可以分为空域和频域锐化两大类,在此着重讨论空域。频域锐化可以参考上题中边缘增强部分。1.拉普拉斯变换锐化。f=imread(lena.bmp);w=fspecial(laplacian,0);%生成模版f2=im2double(f);g2=imfilter(f2,

8、w,replicate);g=f2-g2;g1=1.3*f2-g2;%高频提升figure,subplot(131);imshow(f);title(原始图片);subplot(132);imshow(g);title(标准拉普拉斯锐化);subplot(133);imshow(g1);title(高频提升锐化);运行结果如下图所示:2.梯度算子锐化。程序如下:f=imread(coins.png); h1=fspecial(prewitt); h2=fspecial(sobel); h3=fspecial(log); f2=im2double(f);g1=imfilter(f2,h1,rep

9、licate);g2=imfilter(f2,h2,replicate);g3=imfilter(f2,h3,replicate);figure,subplot(221);imshow(f);title(原始图片);subplot(222);imshow(g1);title(prewitt算子梯度锐化);subplot(223);imshow(g2);title(sobel算子梯度锐化);subplot(224);imshow(g2);title(log算子梯度锐化);运行结果如下如所示:从运行结果可以看出,拉普拉斯变换锐化效果明显,高频提升后边缘信息更加清晰,但是也同时可以看出,拉普拉斯锐化

10、会产生很多噪声。相比较一下,梯度算子没有引入噪声,边缘信息明显,很适合计算机自动检测和识别。三、编写程序完成同态滤波的算法,得出结论。同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。同态滤波的maitlab实现如下:clear;img0 = imread(tun.jpg);%img0=rgb2gray(I);%彩色图像转化为灰度图像M,N=size(img0);img=double(img0);img = log(1+img); %取对数 img = fft2(img); %傅立叶变换 i

11、mg = fftshift(img); %将频域原点移到图像中心 for i=1:M for j=1:N D(i,j)=sqrt(i-floor(M/2)2+(j-floor(N/2)2);%求距离 end end c=4; %锐化参数,可调 Do=150 ; %一般是方差 (滤波器的高通截止频率) H=(2.0-0.5)*(1-exp(-c*(D.2/(Do2)+0.5; %滤波器函数 whos;himg=img.*H; himg=ifftshift(himg);gimg=ifft2(himg); %逆傅立叶变换 gimg=exp(gimg); %取指数 G=real(gimg); img=

12、G; img_min=min(img(:);img_max=max(img(:);img=(img-img_min)/(img_max-img_min); img=imadjust(img,0 1,0 1,0.3);w1=fspecial(gaussian,5,5,2.3);img_new=imfilter(img,w1); %高斯滤波J=histeq(img_new);%直方图均衡化处理im2=histeq(img);figure,subplot(121),imshow(img0);title(原始图像);%显示原始图像subplot(122); imshow(J);title(同态滤波后的

13、图像); %滤波处理过的图像运行结果如下图示:程序中为了得到更好的视觉效果,同态滤波后,有进行了空域高斯滤波和直方图均衡化处理。通过运行结果我们可以看出,经同态滤波后,图像中原本很暗的岩壁更加清晰,图像的亮度范围减小,对比对增强,细节信息增强,视觉效果更好。四、编写程序完成不同分割方法的图像分割的算法并进行比较,得出结论。图像分割是图像处理的重要领域,是计算机进一步处理的基础。笔者完成了两个比较有代表性的图像分割算法,一个是基于灰度的阈值分割,一个是基于边缘信息的分割,分水岭算法进行的图像分割。1. Otsu法阈值分割图像clear allI=imread(coins.png);subplot

14、(1,2,1),imshow(I);title(原始图像)level=graythresh(I); %确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title(Otsu法阈值分割图像);运行结果如下图示:从运行结果可以看出,Otsu法阈值分割图像对于前景目标和背景灰度差别较大、目标灰度范围较小,的情况下可以实现较为理想的分割。在一定的领域具有重要应用。但对背景和目标灰度分布不明显的情况下分割效果不理想。2. 分水岭算法图像分割。I=imread(rice.png); f=double(I); hv=fspecial(prewitt); hh

15、=hv.; gv=abs(imfilter(f,hv,replicate); gh=abs(imfilter(f,hh,replicate); g=sqrt(gv.2+gh.2);%计算梯度 df=bwdist(f);%计算到最近不为0的点的距离 L1=watershed(df); %分水岭算法 em=L1=0; im=imextendedmax(f,20);%计算大于某阈值的极大值 g2=imimposemin(g,im|em);%使用形态重构修改强度图像g,使得它在im|em非零的地方只有区域极小值。 L2=watershed(g2); wr2=L2=0; f(wr2)=255; figu

16、re, subplot(121);imshow(I);title(原始图像); subplot(122),imshow(uint8(f);title(分割结果);运行结果如下图示:由运行结果可以看出,分水岭算法可以较好的实现图像的分割。分水岭算法是图像分割的一种重要方法,但是此方法对噪声比较敏感,容易造成过分割现象。需要进行一定的预处理。本程序在进行自动标记后效果明显,分割效果比较理想。五、编写程序完成不同压缩方法的图像压缩的算法并进行比较,得出结论。图像压缩算法有有损压缩和无损压缩两大类。无损编码主要是熵编码,典型的有哈夫曼编码,还有利用图像空间冗余的游程编码。有损编码主要是变换域编码,如D

17、CT变换编码,小波压缩编码等。笔者完成了而至图像的游程编码和灰度图像的DCT变换编码。1.游程编码 matlab程序如下:tu1=imread(lena.bmp); %读入图像tu2=tu1(1:65536); %将原始图像写成一维的数据并设为 tu2tu2length=length(tu2); % 计算tu2的长度for i=1:1:tu2length % for 循环,目的在于转换为二值图像if tu2(i)=120tu2(i)=255;else tu2(i)=0;endend tu3=reshape(tu2,256,256); % 重建二维数组图像,并设为tu3 figure, subp

18、lot(121);imshow(tu3);title(原始二值图像); X=tu3(:); %令X为新建的二值图像的一维数据组 j=1;tu4(1)=1;for z=1:1:(length(X)-1) % 游程编码程序段if X(z)=X(z+1)tu4(j)=tu4(j)+1;elsedata(j)=X(z); % data(j)代表相应的像素数据j=j+1;tu4(j)=1;endend data(j)=X(length(X); % 最后一个像素数据赋给data tu4length=length(tu4); % 计算游程编码后的所占字节数,记为tu4length % 下面程序是游程编码解压

19、l=1;for m=1:tu4length for n=1:1:tu4(m); rec_tu(l)=data(m); l=l+1; end end rec2_tu=reshape(rec_tu,256,256); % 重建二维二维图像数组subplot(122);imshow(rec2_tu);title(恢复后的图像);%显示解压后的图像运行结果如下图示:压缩后数据如下(whos命令): Name Size Bytes Class tu4 1x3826 30608 double 由图可以看出,对于二值图像(或灰度变化不大的灰度图像)可以无失真的压缩,压缩前图像为256*256大小,压缩后为1

20、*3826,压缩效果比较明显。如果灰度变化较大,则压缩效果不明显,甚至可能会比原来图像还大。2.DCT变换压缩。I=imread(lena.bmp);I=im2double(I) ; %转换图像矩阵为双精度型。T=dctmtx(8);%产生二维DCT变换矩阵B=blkproc(I,8,8,P1*x*P2,T,T); %二值掩模,用来压缩DCT系数,只留下DCT系数中左上角的10个mask=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

21、0 0 0 0 0 0 0 0 0 0 0 0 ;B2=blkproc(B,8 8,P1.*x,mask) ; %只保留DCT变换的10个系数I2=blkproc(B2,8 8,P1*x*P2,T,T) ; %重构图像figure,subplot(1,2,1);imshow(I);title(原始图像);subplot(1,2,2);imshow(I2);title(压缩图像);运行结果如下图所示:从运行结果可以看出,对图像压缩后会产生一定的失真,因为程序主要保留低频系数,所以图像细节部分有失真,但失真不是很明显。本程序只保留了左上角6个系数,理论上压缩比约达到11:1。可见DCT变换编码可以大幅压缩图像。如果改善滤波的模版,对于高频系数进行阈值处理,而不是简单置零,则可以在保证具有较大压缩比的前提下改善视觉效果。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1