现代数字图像处理作业———对lena图像进行简单处理[通俗易懂](北京现代汽车官方网站)
作業(yè)題目:
對lena圖像加入椒鹽噪聲,強度為30%,分別采用均值濾波,中值濾波進行處理。并討論不同尺度的模板對結(jié)果的影響。
作業(yè)代碼及內(nèi)容展示和分析:
##lena加入椒鹽噪聲效果圖
1、噪聲強度為5%
2、噪聲強度為30%
代碼展示:
import cv2 as cv
import random as rd
import matplotlib.pyplot as plt
lena = cv.imread(‘lena.jpeg’,0)
def saltNoise_image(im,var): #生成椒鹽噪聲圖函數(shù)
w,h = im.shape
saltNoiseNum = int(w*h*var) #噪聲總的點數(shù)
for i in range(saltNoiseNum): #在圖像找n個點加入噪聲
x = rd.choice(range(w))
y = rd.choice(range(h))
if im[x,y] < 127:
im[x,y] = 255
else:
im[x,y] = 0
return im
def filterImage(im): #濾波函數(shù)
im = cv.cvtColor(im,cv.COLOR_BGR2RGB)
ksize = [3,5,7]
im_filter = [[cv.blur(im,(i,i)), #均值濾波
cv.medianBlur(im,i), #中值濾波
cv.GaussianBlur(im,(i,i),0,0)] #高斯濾波
for i in ksize]
plt.figure(‘濾波結(jié)果’) #創(chuàng)建窗口
x = 0
for i in range(3):
for j in range(3):
x += 1
plt.subplot(3,3,x) #生成9個子窗口
plt.imshow(im_filter[j][i]),plt.axis(‘off’) #顯示圖像
plt.tight_layout(0,0.1,0)
plt.show()
new_lena = saltNoise_image(lena,0.3) #傳入圖片和噪聲比例
filterImage(new_lena) #濾波
(1)采用卷積子大小為[3,5,7],噪聲強度為5%,采用中值、均值、高斯濾波,其效果圖如下:
(2)采用卷積子大小為[3,5,7],噪聲強度為30%,采用中值、均值、高斯濾波,其效果圖如下:
分析:
當(dāng)對lena圖像加入脈沖噪聲時,不管強度是5%還是30%,所采用的中值和高斯濾波的效果都不理想,而采用中值濾波的效果卻有明顯的改善;且當(dāng)卷積由3→5→7增大時,去除噪聲干擾的效果越好,但是相對而說圖像變得更加的模糊,丟失了更多的細(xì)節(jié)。由于對lena圖像加入脈沖噪聲導(dǎo)致原圖的結(jié)構(gòu)遭到了破壞,高斯和中值濾波都是線性濾波器,會帶入很多的噪聲進行計算,從而使得效果變得越加的不理想,而中值濾波是非線性濾波器,對噪聲的依賴較低,所以它的濾波效果要明顯的優(yōu)于另外兩種的濾波效果。
總結(jié)
以上是生活随笔為你收集整理的现代数字图像处理作业———对lena图像进行简单处理[通俗易懂](北京现代汽车官方网站)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 次新股是什么意思
- 下一篇: php之管理全局状态