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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数字图像的空间域滤波和频域滤波.docx

1、数字图像的空间域滤波和频域滤波数字图像的空间域滤波和频域滤波一、实验环境Pycharm2018.2,Anaconda3-5.3二、实验内容与要求1.平滑空间滤波:1)读出一幅图像,给这幅图像分别参加椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。2)对参加噪声图像选用不同的平滑低通模板做运算,比照不同模板所形成的效果,要求在同一窗口中显示。3)进展低通滤波,显示处理后的图像。4)显示均值处理后的图像。5)对参加椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一窗口中显示结果。2.锐化空间滤波1)读出blurry_moon.tif这幅图像,采用33的拉普拉斯算子

2、w = 1, 1, 1; 1 8 1; 1, 1, 1对其进展滤波。2)编写函数w = genlaplacian(n),自动产生任一奇数尺寸n的拉普拉斯算子,如55的拉普拉斯算子w = 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 13)分别采用55,99,1515和2525大小的拉普拉斯算子对blurry_moon.tif进行锐化滤波,并利用式完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。4)采用不同的梯度算子对blurry_moon.tif进展锐化滤波,并比拟其效果。3.傅立叶变换1)读出woman.tif这幅图像,对其进展

3、快速傅立叶变换,分别显示其幅度图像和相位图像。仅对相位局部进展傅立叶反变换后查看结果图像。2)仅对幅度局部进展傅立叶反变换后查看结果图像。3)将图像的傅立叶变换F置为其共轭后进展反变换,比拟新生成图像与原始图像的差异。三、实验过程1. 平滑空间滤波:1) 读出一幅图像,给这幅图像分别参加椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。椒盐噪声:def salt_pepperNoise(src): dst = src.copy() num = 1000 # 1000个噪声点ndim = np.ndim(src) row, col = np.shape(src)0:2 for i in ra

4、nge(num): x = np.random.randint(0, row) # 随机生成噪声点位置y = np.random.randint(0, col) indicator = np.random.randint(0, 2) # 灰度图像if ndim = 2: if indicator = 0: dstx, y = 0else: dstx, y = 255 # 彩色图像elif ndim = 3: if indicator = 0: dstx, y, : = 0else: dstx, y, : = 255 return dst高斯噪声:def addGaussianNoise(ima

5、ge,sigma): mean = 0.0row, col ,ch= image.shape gauss = np.random.normal(mean, sigma, (row, col,ch) gauss = gauss.reshape(row, col,ch) noisy = image + gauss return noisy.astype(np.uint8)2) 对参加噪声图像选用不同的平滑低通模板做运算,比照不同模板所形成的效果,要求在同一窗口中显示。参加椒盐噪声后图像的滤波:img1 =cv2.imread(D:mote.jpg,0)img=img1100:300src =sal

6、t_pepperNoise(img)cv2.imshow(origin,src)dst = cv2.blur(src,(3,3) #均值滤波模板cv2.imshow(blur,dst)dst1 = cv2.medianBlur(src,5) #中值滤波cv2.imshow(medianBlur,dst1)dst2 = cv2.GaussianBlur(src,(3,3),0) #高斯滤波cv2.imshow(GaussianBlur,dst2)cv2.waitKey(0)cv2.destroyAllWindows()3) 进展低通滤波,显示处理后的图像。import cv2import num

7、py as npdef function(img): h,w=img.shape newimg=np.zeros(h,w),np.uint8) img2=np.fft.fft2(img) fshift = np.fft.fftshift(img2) st=fshift.copy() h,w=fshift.shape sh=h/2 sw=w/2 r=40 for i in range(h): for j in range(w): if (sh - i) * (sh - i) + (sw - j) * (sw - j) = r * r: newimgi, j = 255 tmp = 1 else:

8、 tmp = 0 sti, j = tmp * fshifti, j sl=np.fft.ifftshift(st) x2=np.fft.ifft2(sl) x3=np.uint8(np.real(x2) return newimg,x3img=cv2.imread(D:mote.jpg,0)img1,img2=function(img)cv2.imshow(image,img)cv2.imshow(low pass filtering,img2)cv2.waitKey(0)4) 显示均值处理后的图像。代码:import cv2import matplotlib.pyplot as pltim

9、g = 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(blur,gray)plt.title(blur)plt.xticks(), plt.yticks()plt.show()5) 对参加椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理,要求在同一

10、窗口中显示结果。代码:import cv2import matplotlib.pyplot as pltimg = 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(medianBlur)plt.xticks(), plt.yticks()plt.subplot(1,2,2),plt.imshow(blur,gray)plt.title(blur)plt

11、.xticks(), plt.yticks()plt.show()2. 锐化空间滤波1) 读出一幅图像,采用33的拉普拉斯算子w = 1, 1, 1; 1 8 1; 1, 1, 1对其进展滤波。# 定义函数,实现拉普拉斯算子def Laplace(src): template = np.ones(3, 3), dtype=np.float32) # 模板template1, 1 = -8.0 addBorder = cv2.copyMakeBorder(src, 1, 1, 1, 1, cv2.BORDER_REFLECT_101)row, col = src.shape dst = np.z

12、eros(row, col), dtype=np.int16) for i in range(row): for j in range(col): temp = addBorder i:i+3, j:j+3 dsti, j = np.sum(template*temp) return dst2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n的拉普拉斯算子,如55的拉普拉斯算子w = 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1import numpy as npimport pandas as pdimport

13、 cv2from scipy import ndimagekernel_5x5=np.array(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)img = cv2.imread(D:mote.jpg, 0) k5 = ndimage.convolve(img, kernel_5x5) cv2.imshow(5x5, k5) cv2.waitKey()cv2.destroyAllWindows()3) 分别采用55,99,1515和2525大小的拉普拉斯算子对blurry_moon.tif进行锐化滤波,并利用式完成图像的锐化增强,

14、观察其有何不同,要求在同一窗口中显示。代码:import cv2img=blurred = cv2.imread(D:mote.jpg,0)#55,99,1515和2525blurred1 =cv2.GaussianBlur(img, (5,5), 0)blurred2 =cv2.GaussianBlur(img, (9,9), 0)blurred3 =cv2.GaussianBlur(img, (15,15), 0)blurred4 =cv2.GaussianBlur(img, (25,25), 0)img5x5 = img - blurred1img9x9 = img - blurred2

15、img15x15 = img - blurred3img25x25 = img - blurred4cv2.imshow(5x5,img5x5 )cv2.imshow(9x9,img9x9 )cv2.imshow(15x15,img15x15)cv2.imshow(25x25,img25x25 )cv2.waitKey(0)随着属性值的增大,图像锐化增强4) 采用不同的梯度算子对blurry_moon.tif进展锐化滤波,并比拟其效果。代码:import numpy as npimport cv2src = cv2.imread(D:mote.jpg,0) #sobel算法x =cv2.Sob

16、el(src,cv2.CV_16S,1,0)y =cv2.Sobel(src,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)#Canny算子can =cv2.Canny(src,30

17、,120)s= src-cansrc1 =cv2.GaussianBlur(s,(3,3),0)cv2.imshow(can,src1 )cv2.waitKey(0)3. 傅立叶变换1)读出woman.tif这幅图像,对其进展快速傅立叶变换,分别显示其幅度图像和相位图像。仅对相位局部进展傅立叶反变换后查看结果图像。2)仅对幅度局部进展傅立叶反变换后查看结果图像。3)将图像的傅立叶变换F置为其共轭后进展反变换,比拟新生成图像与原始图像的差异。代码:import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread

18、(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.subplot(221),plt.imshow(s1,gray),plt.title(original magnitude)plt.subplot(222),plt.imshow(s2,gray),plt.title(center magnitude)plt.subplot(223),plt.imshow(ph_f,gray),plt.title(original phase)plt.subplot(224),plt.imshow(ph_fshift,gray),plt.title(center phase)plt.show()

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

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