数字图像的空间域滤波和频域滤波Word文档下载推荐.docx

上传人:b****3 文档编号:17062660 上传时间:2022-11-28 格式:DOCX 页数:12 大小:3.68MB
下载 相关 举报
数字图像的空间域滤波和频域滤波Word文档下载推荐.docx_第1页
第1页 / 共12页
数字图像的空间域滤波和频域滤波Word文档下载推荐.docx_第2页
第2页 / 共12页
数字图像的空间域滤波和频域滤波Word文档下载推荐.docx_第3页
第3页 / 共12页
数字图像的空间域滤波和频域滤波Word文档下载推荐.docx_第4页
第4页 / 共12页
数字图像的空间域滤波和频域滤波Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数字图像的空间域滤波和频域滤波Word文档下载推荐.docx

《数字图像的空间域滤波和频域滤波Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字图像的空间域滤波和频域滤波Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

数字图像的空间域滤波和频域滤波Word文档下载推荐.docx

w=[11111

11111

11-2411

11111

11111]

3)分别采用5×

5,9×

9,15×

15和25×

25大小的拉普拉斯算子对blurry_moon.tif进

行锐化滤波,并利用式

完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。

4)采用不同的梯度算子对blurry_moon.tif进展锐化滤波,并比拟其效果。

3.傅立叶变换

1)读出woman.tif这幅图像,对其进展快速傅立叶变换,分别显示其幅度图像和相位

图像。

仅对相位局部进展傅立叶反变换后查看结果图像。

2)仅对幅度局部进展傅立叶反变换后查看结果图像。

3)将图像的傅立叶变换F置为其共轭后进展反变换,比拟新生成图像与原始图像的差

异。

三、实验过程

1.平滑空间滤波:

1)读出一幅图像,给这幅图像分别参加椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。

椒盐噪声:

defsalt_pepperNoise(src):

dst=src.copy()

num=1000#1000个噪声点ndim=np.ndim(src)

row,col=np.shape(src)[0:

2]

foriinrange(num):

x=np.random.randint(0,row)#随机生成噪声点位置y=np.random.randint(0,col)

indicator=np.random.randint(0,2)#灰度图像ifndim==2:

ifindicator==0:

dst[x,y]=0

else:

dst[x,y]=255

#彩色图像elifndim==3:

dst[x,y,:

]=0

]=255

returndst

高斯噪声:

defaddGaussianNoise(image,sigma):

mean=0.0

row,col,ch=image.shape

gauss=np.random.normal(mean,sigma,(row,col,ch))

gauss=gauss.reshape(row,col,ch)

noisy=image+gauss

returnnoisy.astype(np.uint8)

2)对参加噪声图像选用不同的平滑〔低通〕模板做运算,比照不同模板所形成的效果,

参加椒盐噪声后图像的滤波:

img1=cv2.imread("

D:

\\mote.jpg"

0)

img=img1[100:

300]

src=salt_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)进展低通滤波,显示处理后的图像。

importcv2

importnumpyasnp

deffunction(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

foriinrange(h):

forjinrange(w):

if((sh-i)*(sh-i)+(sw-j)*(sw-j))<

=r*r:

newimg[i,j]=255

tmp=1

else:

tmp=0

st[i,j]=tmp*fshift[i,j]

sl=np.fft.ifftshift(st)

x2=np.fft.ifft2(sl)

x3=np.uint8(np.real(x2))

returnnewimg,x3

img=cv2.imread('

\\mote.jpg'

img1,img2=function(img)

image"

img)cv2.imshow("

lowpassfiltering"

img2)

4)显示均值处理后的图像。

代码:

importmatplotlib.pyplotasplt

img=cv2.imread('

0)#直接读为灰度图像blur=cv2.blur(img,(3,5))#模板大小3*5

plt.subplot(1,2,1),plt.imshow(img,'

gray'

)#默认彩色,另一种彩色bgr

plt.title('

img'

plt.xticks([]),plt.yticks([])

plt.subplot(1,2,2),plt.imshow(blur,'

blur'

plt.show()

5)对参加椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处

/img/salt.jpg'

mid=cv2.medianBlur(img,5)

plt.subplot(1,2,1),plt.imshow(mid,'

)plt.title('

medianBlur'

2.锐化空间滤波

1)读出一幅图像,采用3×

#定义函数,实现拉普拉斯算子defLaplace(src):

template=np.ones((3,3),dtype=np.float32)#模板template[1,1]=-8.0

addBorder=cv2.copyMakeBorder(src,1,1,1,1,cv2.BORDER_REFLECT_101)row,col=src.shape

dst=np.zeros((row,col),dtype=np.int16)

foriinrange(row):

forjinrange(col):

temp=addBorder[i:

i+3,j:

j+3]

dst[i,j]=np.sum(template*temp)

2)编写函数w=genlaplacian(n),自动产生任一奇数尺寸n的拉普拉斯算子,如5×

importpandasaspd

fromscipyimportndimage

kernel_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("

0)

k5=ndimage.convolve(img,kernel_5x5)

5x5"

k5)

cv2.waitKey()

3)分别采用5×

行锐化滤波,并利用式完成图像的锐化增强,观察其有何不同,要求在同一窗口中显示。

img=blurred=cv2.imread("

#5×

25

blurred1=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-blurred1

img9x9=img-blurred2

img15x15=img-blurred3

img25x25=img-blurred4

img5x5)

9x9"

img9x9)

15x15"

img15x15)

25x25"

img25x25)

随着属性值的增大,图像锐化增强

4)采用不同的梯度算子对blurry_moon.tif进展锐化滤波,并比拟其效果。

src=cv2.imread("

0)

#sobel算法x=cv2.Sobel(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'

#拉布拉斯算子lap=cv2.Laplacian(src,cv2.CV_16S,3)

dst1=cv2.convertScaleAbs(lap)

Laplacian"

#Canny算子can=cv2.Canny(src,30,120)

s=src-can

src1=cv2.GaussianBlur(s,(3,3),0)

can"

src1)

3.傅立叶变换

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,'

),plt.title('

originalmagnitude'

plt.subplot(222),plt.imshow(s2,'

centermagnitude'

plt.subplot(223),plt.imshow(ph_f,'

originalphase'

plt.subplot(224),plt.imshow(ph_fshift,'

centerphase'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

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

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