圖像濾波是一種十分常見的圖像處理手段。通常,你可以認為相鄰位置像素是緊密聯(lián)系的,它們共同來顯示對某個物體,圖像濾波則通過運算來排除圖像中和周圍相差大的像素。當然,這并不是絕對的, 有時候你為了評估圖像的質(zhì)量,也會將這些“特立獨行”的像素作為選取的目標 。無論你采用什么方法,記住你要的目標就行,有時候你的目標可能是別人的背景。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),武邑企業(yè)網(wǎng)站建設(shè),武邑品牌網(wǎng)站建設(shè),網(wǎng)站定制,武邑網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,武邑網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
濾波常常會使得圖像變得模糊(非絕對),那么,為什么你需要將一幅清晰的圖像變得模糊呢?下面的例子應(yīng)該可以解釋。
高斯濾波采用滿足正態(tài)分布的核模板,其參數(shù)的主要參數(shù)是標準差σ,代表核的離散程度,σ值越小,模板中心系數(shù)與邊緣系數(shù)差越大,平滑的程度越小。
高斯濾波對圖像采集過程中由于不良照明/高溫引起的傳感器噪聲信號有較好的效果,消除了圖像中的高頻信號。
由于得到的是一維的Gaussian Kernel,你可以采用下面的方式轉(zhuǎn)為二維的
為了便于直觀感受高斯濾波的效果,使用Canny算子來提取輪廓對比,你可以試試在特征提取前加高斯濾波對比。
補充說明:對于均值濾波,你也可以使用cv2.boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]])來實現(xiàn),需要將normalize設(shè)置為True,當設(shè)置normalize為False時,實現(xiàn)的是將kernel內(nèi)像素相加,官方文檔做出的描述為:
中值濾波對圖像中的脈沖型(椒鹽等)噪聲信號處理效果好,當 你的應(yīng)用場景存在這種顆粒感的噪聲信號時,中值濾波會是一種很好的選擇 。它,選取kernel區(qū)域內(nèi)像素點集的中值最為錨點的像素值,對類似投票機制中的最高分(高灰階點)和最低分(過低灰階點)影響有很好的抑制作用。
如果你的應(yīng)用涉及到圖像美化,雙邊濾波可以初步達到你的期望,關(guān)于雙邊濾波,這里不做展開,由你來探索,其函數(shù)參數(shù)信息如下。
對于opencv-python的圖像濾波部分有問題歡迎留言, Have Fun With OpenCV-Python, 下期見。
T=wpdec(y,5,'db40');
%信號y進行波包解層數(shù)5T波樹plot看
a10=wprcoef(T,[1,0]);
%a10節(jié)點[1,0]進行重構(gòu)信號貌似沒層重構(gòu)說吧能某層某節(jié)點進行重構(gòu)節(jié)點編號波樹
%以下為濾波程序(主要調(diào)節(jié)參數(shù)c的大?。?/p>
c=10;
wn=0.1;
fs=50000; %采樣頻率;
b=fir1(c,wn/(fs/2),hamming(c+1));
y1=filtfilt(b,1,y);%對y濾波。
SciPy提供了firwin用窗函數(shù)設(shè)計低通濾波器,firwin的調(diào)用形式如下:
firwin(N, cutoff, width=None, window='hamming')
其中N為濾波器的長度;cutoff為以正規(guī)化的頻率;window為所使用的窗函數(shù)。
如何用python實現(xiàn)圖像的一維高斯濾波器
現(xiàn)在把卷積模板中的值換一下,不是全1了,換成一組符合高斯分布的數(shù)值放在模板里面,比如這時中間的數(shù)值最大,往兩邊走越來越小,構(gòu)造一個小的高斯包。實現(xiàn)的函數(shù)為cv2.GaussianBlur()。對于高斯模板,我們需要制定的是高斯核的高和寬(奇數(shù)),沿x與y方向的標準差(如果只給x,y=x,如果都給0,那么函數(shù)會自己計算)。高斯核可以有效的出去圖像的高斯噪聲。當然也可以自己構(gòu)造高斯核,相關(guān)函數(shù):cv2.GaussianKernel().
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread(‘flower.jpg‘,0) #直接讀為灰度圖像
for i in range(2000): #添加點噪聲
temp_x = np.random.randint(0,img.shape[0])
temp_y = np.random.randint(0,img.shape[1])
img[temp_x][temp_y] = 255
blur = cv2.GaussianBlur(img,(5,5),0)
plt.subplot(1,2,1),plt.imshow(img,‘gray‘)#默認彩色,另一種彩色bgr
plt.subplot(1,2,2),plt.imshow(blur,‘gray‘)
利用Python scipy.signal.filtfilt() 實現(xiàn)信號濾波
Required input defintions are as follows;
time: Time between samples
band: The bandwidth around the centerline freqency that you wish to filter
freq: The centerline frequency to be filtered
ripple: The maximum passband ripple that is allowed in db
order: The filter order. For FIR notch filters this is best set to 2 or 3, IIR filters are best suited for high values of order. This algorithm is hard coded to FIR filters
filter_type: 'butter', 'bessel', 'cheby1', 'cheby2', 'ellip'
data: the data to be filtered
用python設(shè)計FIR陷波濾波器
對濾波的 總結(jié) : 對特定頻率進行有效提取,并對提取部分進行特定的處理(增益,衰減,濾除)的動作被叫做濾波。
最常用的濾波器類型有三種: 通過式(Pass),擱架式(Shelving)和參量式(Parametric)。 濾波器都有一個叫 參考頻率(Reference Frequency)的東西 ,在不同類型的濾波器中,具體的叫法會有所不同。
通過式濾波器可以讓參考頻率一側(cè)的頻率成分完全通過該濾波器,同時對另一側(cè)的頻率成分做線性的衰減,就是,一邊讓通過,一邊逐漸被濾除。在信號學(xué)中,通過的區(qū)域被稱為通帶,濾除的區(qū)域被叫做阻帶,在通過式濾波器中,參考頻率通常被稱為截止頻率。
高通濾波器(high-pass filters):讓截止頻率后的高頻區(qū)域通過,另一側(cè)濾除,低通濾波器(low-pass filters):讓截止頻率前的低頻區(qū)域通過,另一側(cè)濾除,通
以下是高通濾波器與低通濾波器的核心參數(shù):
截止頻率(Cut-off frequency) :決定了通帶(通過的頻率部分)與阻帶(阻止的頻率部分)的分界曲線,截止頻率的位置并非是在曲線開始彎曲的那個點,而是在-3dB的位置。以圖2左側(cè)的高通濾波器為例,截止頻率點之上的部分頻率并沒有全部被通過,而是有個曲線,在曲線回歸平直后其頻率才被完全通過。至于為什么要將-3dB的位置設(shè)為截止頻率,是因為-3dB對于濾波器的設(shè)計而言是個非常重要的位置,如果設(shè)為其他位置,則會讓通過式濾波器的設(shè)計變得尤為復(fù)雜。
斜率(Slope) :表示的是通帶與阻帶的分界曲線的傾斜程度,也就是說斜率決定了分界曲線是偏向平緩的,還是偏向垂直的,斜率越大(更陡峭),人工處理的痕跡就越明顯。斜率的單位為dB/oct,中文稱為分貝每倍頻程。雖然繞口,但其實很簡單,如6dB/oct,意思為一個倍頻程的距離會產(chǎn)生6dB的衰減,數(shù)字濾波器常見的斜率選擇有6dB/oct,12dB/oct,18dB/oct,24dB/oct,30dB/oct等等(圖3)。
scipy.signal.filtfilt(b, a, x, axis=-1, padtype='odd', padlen=None, method='pad', irlen=None)
scipy.signal.butter(N, Wn, btype='low', analog=False, output='ba')
這里假設(shè)采樣頻率為1000hz,信號本身最大的頻率為500hz,要濾除10hz以下和400hz以上頻率成分,即截至頻率為10hz和400hz,則wn1=2*10/1000=0.02,wn2=2*400/1000=0.8。Wn=[0.02,0.8]
文章標題:python信號濾波函數(shù) python濾波算法
本文路徑:http://jinyejixie.com/article36/hpsdsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計公司、自適應(yīng)網(wǎng)站、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)