版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字图像的空间域滤波和频域滤波一、实验环境Pycharm2018.2Anaconda3-5.3二、实验内容与要求1.平滑空间滤波:1)读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。2)对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。3) 进行低通滤波,显示处理后的图像。4) 显示均值处理后的图像。5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。2.锐化空间滤波1) 读出blurry_moon.tif这幅图像,采用3X3的拉普拉斯算子w=1,1,1;1
2、-81;1,1,1对其进行滤波。2) 编写函数w=genlaplacian(n),自动产生任一奇数尺寸n的拉普拉斯算子,如5X5的拉普拉斯算子w=111111111111-241111111111113) 分别采用5X5,9X9,15X15和25X25大小的拉普拉斯算子对blurry_moon.tif进行锐化滤波,并利用式g(x,y)=f(x,y)-V2f(x,y)完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。4) 采用不同的梯度算子对blurry_moon.tif进行锐化滤波,并比较其效果。5) 傅立叶变换1)读出woman.tif这幅图像,对其进行快速傅立叶变换,分别显示其幅度
3、图像和相位图像。仅对相位部分进行傅立叶反变换后查看结果图像。2)仅对幅度部分进行傅立叶反变换后查看结果图像。3)将图像的傅立叶变换F置为其共轲后进行反变换,比较新生成图像与原始图像的差异。三、实验过程1 .平滑空间滤波:1)读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。椒盐噪声:defsalt_pepperNoise(src):dst=src.copy()num=1000#1000个噪声点ndim=np.ndim(src)row,col=np.shape(src)0:2foriinrange(num):x=np.random.randint(0,row)
4、#随机生成噪声点位置y=np.random.randint(0,col)indicator=np.random.randint(0,2)#灰度图像ifndim=2:ifindicator=0:dstx,y=0else:dstx,y=255#彩色图像elifndim=3:ifindicator=0:dstx,y,:=0else:dstx,y,:=255returndst高斯噪声:defaddGaussianNoise(image,sigma):mean=0.0row,col,ch=image.shapegauss=np.random.normal(mean,sigma,(row,col,ch)g
5、auss=gauss.reshape(row,col,ch)noisy=image+gaussreturnnoisy.astype(np.uint8)2)对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果,要求在同一窗口中显示。加入椒盐噪声后图像的滤波:imgl=cv2.imread(D:mote.jpg,0)img=img1100:300src=salt_pepperNoise(img)cv2.imshow(origin,src)dst=cv2.blur(src,(3,3)#均值滤波模板cv2.imshow(blur,dst)dst1=cv2.medianBlur(sr
6、c,5)#中值滤波cv2.imshow(medianBlur,dst1)dst2=cv2.GaussianBlur(src,(3,3),0)#高斯滤波cv2.imshow(GaussianBlur,dst2)cv2.waitKey(0)cv2.destroyAllWindows()X3) 进行低通滤波,显示处理后的图像。importcv2importnumpyasnpdeffunction(img):h,w=img.shapenewimg=np.zeros(h,w),np.uint8)img2=np.fft.fft2(img)fshift=np.fft.fftshift(img2)st=fsh
7、ift.copy()h,w=fshift.shapesh=h/2sw=w/2r=40foriinrange(h):forjinrange(w):if(sh-i)*(sh-i)+(sw-j)*(sw-j)=r*r:newimgi,j=255tmp=1else:tmp=0sti,j=tmp*fshifti,jsl=np.fft.ifftshift(st)x2=np.fft.ifft2(sl)x3=np.uint8(np.real(x2)returnnewimg,x3img=cv2.imread(D:mote.jpg,0)img1,img2=function(img)cv2.imshow(image
8、,img)cv2.imshow(lowpassfiltering,img2)cv2.waitKey(0)4) 显示均值处理后的图像。代码:importcv2importmatplotlib.pyplotaspltimg=cv2.imread(D:mote.jpg,0)#直接读为灰度图像blur=cv2.blur(img,(3,5)#模板大小3*5plt.subplot(1,2,1),plt.imshow(img,gray)#默认彩色,另一种彩色bgrplt.title(img)plt.xticks(),plt.yticks(口)plt.subplot(1,2,2),plt.imshow(blu
9、r,gray)plt.title(blur)plt.xticks(),plt.yticks(口)plt.show()5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。代码:importcv2importmatplotlib.pyplotaspltimg=cv2.imread(D:/img/salt.jpg,0)#直接读为灰度图像blur=cv2.blur(img,(3,5)#模板大小3*5mid=cv2.medianBlur(img,5)plt.subplot(1,2,1),plt.imshow(mid,gray)plt.title(me
10、dianBlur)plt.xticks(),plt.yticks(口)plt.subplot(1,2,2),plt.imshow(blur,gray)plt.title(blur)plt.xticks(),plt.yticks(口)plt.show()蒋Figure1一XmedianBlurblur创生国生19国里I2.锐化空间滤波1) 读出一幅图像,采用3X3的拉普拉斯算子w=1,1,1;1-81;1,1,1对其进行滤波。#定义函数,实现拉普拉斯算子defLaplace(src):template=np.ones(3,3),dtype=np.float32)#模板template1,1=-8
11、.0addBorder=cv2.copyMakeBorder(src,1,1,1,1,cv2.BORDER_REFLECT_101)row,col=src.shapedst=np.zeros(row,col),dtype=16)foriinrange(row):forjinrange(col):temp=addBorderi:i+3,j:j+3dsti,j=np.sum(template*temp)returndst2) 编写函数w=genlaplacian(n),自动产生任一奇数尺寸n的拉普拉斯算子,如5X5的拉普拉斯算子-2411importimportimportnumpya
12、snppandasaspdcv2fromscipyimportndimagek5=ndimage.convolve(img,kernel_5x5)kernel_5x5=np.array(img=cv2.imread(D:1,1,1,1,1,1,1,1,1,1,1,1,-24,1,1,1,1,1,1,1,1,1,1,1,1)mote.jpg,0)cv2.imshow(5x5,k5)cv2.waitKey()cv2.destroyAllWindows()3) 分别采用5X5,9X9,15X15和25X25大小的拉普拉斯算子对blurry_moon.tif进行锐化滤波,并利用式完成图像的锐化增强,观
13、察其有何不同,要求在同一窗口中显示。代码:importcv2img=blurred=cv2.imread(D:mote.jpg,0)#5X5,9X9,15X15和25X255,5),0)9,9),0)15,15),0)25,25),0)blurredl=cv2.GaussianBlur(img,(blurred2=cv2.GaussianBlur(img,(blurred3=cv2.GaussianBlur(img,(blurred4=cv2.GaussianBlur(img,(img5x5=img-blurred1img9x9=img-blurred2img15x15=img-blurred
14、3img25x25=img-blurred4cv2.imshow(5x5,img5x5)cv2.imshow(9x9,img9x9)cv2.imshow(15x15,img15x15)cv2.imshow(25x25,img25x25)cv2.waitKey(0)*t尸随着属性值的增大,图像锐化增强,并比较其效果。4) 米用不同的梯度算子对blurry_moon.tif进行锐化滤波代码:importnumpyasnpimportcv2src=cv2.imread(D:mote.jpg,0)#sobel算法x=cv2.Sobel(src,cv2.CV_16S,1,0)y=cv2.Sobel(sr
15、c,cv2.CV_16S,0,1)absX=cv2.convertScaleAbs(x)absY=cv2.convertScaleAbs(y)dst=cv2.addWeighted(absX,0.5,absY,0.5,0)cv2.imshow(Sobel,dst)#拉布拉斯算子lap=cv2.Laplacian(src,cv2.CV_16S,3)dst1=cv2.convertScaleAbs(lap)cv2.imshow(Laplacian,dst1)#CannyB子can=cv2.Canny(src,30,120)s=src-cansrc1=cv2.GaussianBlur(s,(3,3)
16、,0)cv2.imshow(can,src1)cv2.waitKey(0)!一-1fse口3.傅立叶变换1)读出woman.tif这幅图像,对其进行快速傅立叶变换,分别显示其幅度图像和相位图像。仅对相位部分进行傅立叶反变换后查看结果图像。2)仅对幅度部分进行傅立叶反变换后查看结果图像。3)将图像的傅立叶变换F置为其共轲后进行反变换,比较新生成图像与原始图像的差异。代码:importcv2importnumpyasnpimportmatplotlib.pyplotaspltimg=cv2.imread(D:mote.jpg,0)f=np.fft.fft2(img)#快速傅里叶变换算法得到频率分布fshift=np.fft.fftshift(f)s1=np.log(np.abs(f)s2=np.log(np.abs(fshift)ph_f=np.angle(f)ph_fshift=np.angle(fshift)plt.subpl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五昆山工业园区物业费收取标准与环保设施维护合同3篇
- 2024排水沟清理与水质保护合同
- 2024新出台融资担保合同范本及注意事项3篇
- 2025年度建筑材料市场调研付款合同样本3篇
- 二手车买卖协议:2024年标准版版B版
- 二零二五年度高科技企业干股合资合同范本3篇
- 2025年度货车交通事故责任分配合同3篇
- 二零二五年度空压机租赁及空场地使用权共享服务协议3篇
- 张家口2024年河北张家口赤城县事业单位招聘10人笔试历年典型考点(频考版试卷)附带答案详解
- 2024版全新法律事务委托合同下载
- 医疗废物转运工作制度
- 新编建筑施工扣件式钢管脚手架安全技术规范
- 三年级下册小猿口算题1000道
- 决策的艺术课件
- 了不起的狐狸爸爸-全文打印
- 国际经济学国际贸易的标准理论
- 8D报告培训教材(PPT 47页)
- -居民死亡医学证明(推断)书
- 糖尿病酮症酸中毒病例讨论-文档资料
- 液相色谱质谱质谱仪LCMSMSSYSTEM
- 民办非企业单位章程核准表-空白表格
评论
0/150
提交评论