中值濾波器去噪:
目前成都創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鄭州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。中值濾波的主要原理是將數(shù)字圖像中的某點(diǎn)用該點(diǎn)的鄰域中各個(gè)像素值的中值所來(lái)代替,這樣就能讓目標(biāo)像素周圍能夠更好的接近真實(shí)值,比如一張白紙上有一個(gè)黑點(diǎn)時(shí),黑點(diǎn)的像素值比較大,經(jīng)過(guò)中值濾波過(guò)后,黑點(diǎn)附近的像素值可能就會(huì)變小。經(jīng)過(guò)中值濾波后一些相對(duì)孤立的噪聲點(diǎn)就容易被清除掉,這樣就能提高圖像的質(zhì)量。
所以中值濾波器去噪的一個(gè)優(yōu)點(diǎn)就是對(duì)椒鹽噪聲的去除具有很好的效果,具體操作是選取一個(gè)中心鄰域,然后給鄰域類各個(gè)像素的灰度值按大小進(jìn)行排序,選取排序序列中的中值作為該鄰域中心點(diǎn)的像素值的灰度值。
它的缺點(diǎn)是當(dāng)鄰域挑選過(guò)大時(shí),可能會(huì)造成圖像特征丟失。
實(shí)現(xiàn)代碼如下:
import numpy as np import cv2 from PIL import Image import scipy.signal as signal import matplotlib.pyplot as plt #創(chuàng)建一個(gè)500*500的矩陣 input_images = np.zeros((500, 500)) filename = "E:/pycharm/GraduationDesign/Test/testtwo.png" #convert將當(dāng)前圖像轉(zhuǎn)換為灰度模式,并且返回新的圖像。 #將圖片在重新定義的矩陣中再顯示,不然可能會(huì)只顯示部分。 img = Image.open(filename).resize((500, 500)).convert('L') plt.subplot(221) plt.title('原圖', fontproperties=font_set) plt.imshow(img) #圖像的尺寸,按照像素?cái)?shù)計(jì)算。它的返回值為寬度和高度的二元組(width, height)。 width = img.size[0] height = img.size[1] threshold=130 #可以改寫(xiě)代碼使其成為二值化,此代碼可理解為反向二值化 for h in range(height): for w in range(width): #getpixel直接獲得(h,w)處的像素直接返回這個(gè)點(diǎn)三個(gè)通道的像素值 #返回給定位置的像素值。如果圖像為多通道,則返回一個(gè)元組(r,g,b,閾值)。 #如果改成(w,h)出現(xiàn)的圖像會(huì)倒轉(zhuǎn) if img.getpixel((w, h)) < threshold: input_images[h, w] = 1 else: input_images[h, w] = 0 plt.subplot(222) plt.title('二值化', fontproperties=font_set) plt.imshow(input_images) data = signal.medfilt2d(np.array(img), kernel_size=3) # 二維中值濾波 for h in range(0, height): for w in range(0, width): if data[h][w] < 128: input_images[h, w] = 0 else: input_images[h, w] = 1 plt.subplot(223) plt.title('中值濾波去噪(3*3)', fontproperties=font_set) plt.imshow(input_images) data = signal.medfilt2d(np.array(img), kernel_size=7) # 二維中值濾波 for h in range(0, height): for w in range(0, width): if data[h][w] < 128: input_images[h, w] = 0 else: input_images[h, w] = 1 plt.subplot(224) plt.title('中值濾波去噪(7*7)', fontproperties=font_set) plt.imshow(input_images) plt.show()
本文名稱:Python實(shí)現(xiàn)中值濾波去噪方式-創(chuàng)新互聯(lián)
文章起源:http://m.rwnh.cn/article28/ddsecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、微信公眾號(hào)、企業(yè)建站、網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容