python濾波核函數(shù) python濾波器信號(hào)處理

OpenCV-Python系列六:圖像濾波

圖像濾波是一種十分常見的圖像處理手段。通常,你可以認(rèn)為相鄰位置像素是緊密聯(lián)系的,它們共同來顯示對(duì)某個(gè)物體,圖像濾波則通過運(yùn)算來排除圖像中和周圍相差大的像素。當(dāng)然,這并不是絕對(duì)的, 有時(shí)候你為了評(píng)估圖像的質(zhì)量,也會(huì)將這些“特立獨(dú)行”的像素作為選取的目標(biāo) 。無(wú)論你采用什么方法,記住你要的目標(biāo)就行,有時(shí)候你的目標(biāo)可能是別人的背景。

茶陵網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站從2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站

濾波常常會(huì)使得圖像變得模糊(非絕對(duì)),那么,為什么你需要將一幅清晰的圖像變得模糊呢?下面的例子應(yīng)該可以解釋。

高斯濾波采用滿足正態(tài)分布的核模板,其參數(shù)的主要參數(shù)是標(biāo)準(zhǔn)差σ,代表核的離散程度,σ值越小,模板中心系數(shù)與邊緣系數(shù)差越大,平滑的程度越小。

高斯濾波對(duì)圖像采集過程中由于不良照明/高溫引起的傳感器噪聲信號(hào)有較好的效果,消除了圖像中的高頻信號(hào)。

由于得到的是一維的Gaussian Kernel,你可以采用下面的方式轉(zhuǎn)為二維的

為了便于直觀感受高斯濾波的效果,使用Canny算子來提取輪廓對(duì)比,你可以試試在特征提取前加高斯濾波對(duì)比。

補(bǔ)充說明:對(duì)于均值濾波,你也可以使用cv2.boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]])來實(shí)現(xiàn),需要將normalize設(shè)置為True,當(dāng)設(shè)置normalize為False時(shí),實(shí)現(xiàn)的是將kernel內(nèi)像素相加,官方文檔做出的描述為:

中值濾波對(duì)圖像中的脈沖型(椒鹽等)噪聲信號(hào)處理效果好,當(dāng) 你的應(yīng)用場(chǎng)景存在這種顆粒感的噪聲信號(hào)時(shí),中值濾波會(huì)是一種很好的選擇 。它,選取kernel區(qū)域內(nèi)像素點(diǎn)集的中值最為錨點(diǎn)的像素值,對(duì)類似投票機(jī)制中的最高分(高灰階點(diǎn))和最低分(過低灰階點(diǎn))影響有很好的抑制作用。

如果你的應(yīng)用涉及到圖像美化,雙邊濾波可以初步達(dá)到你的期望,關(guān)于雙邊濾波,這里不做展開,由你來探索,其函數(shù)參數(shù)信息如下。

對(duì)于opencv-python的圖像濾波部分有問題歡迎留言, Have Fun With OpenCV-Python, 下期見。

如何用python實(shí)現(xiàn)圖像的一維高斯濾波器

如何用python實(shí)現(xiàn)圖像的一維高斯濾波器

現(xiàn)在把卷積模板中的值換一下,不是全1了,換成一組符合高斯分布的數(shù)值放在模板里面,比如這時(shí)中間的數(shù)值最大,往兩邊走越來越小,構(gòu)造一個(gè)小的高斯包。實(shí)現(xiàn)的函數(shù)為cv2.GaussianBlur()。對(duì)于高斯模板,我們需要制定的是高斯核的高和寬(奇數(shù)),沿x與y方向的標(biāo)準(zhǔn)差(如果只給x,y=x,如果都給0,那么函數(shù)會(huì)自己計(jì)算)。高斯核可以有效的出去圖像的高斯噪聲。當(dāng)然也可以自己構(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): #添加點(diǎn)噪聲

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‘)#默認(rèn)彩色,另一種彩色bgr

plt.subplot(1,2,2),plt.imshow(blur,‘gray‘)

2021-02-08 Python OpenCV GaussianBlur()函數(shù)

borderType= None)函數(shù)

此函數(shù)利用高斯濾波器平滑一張圖像。該函數(shù)將源圖像與指定的高斯核進(jìn)行卷積。

src:輸入圖像

ksize:(核的寬度,核的高度),輸入高斯核的尺寸,核的寬高都必須是正奇數(shù)。否則,將會(huì)從參數(shù)sigma中計(jì)算得到。

dst:輸出圖像,尺寸與輸入圖像一致。

sigmaX:高斯核在X方向上的標(biāo)準(zhǔn)差。

sigmaY:高斯核在Y方向上的標(biāo)準(zhǔn)差。默認(rèn)為None,如果sigmaY=0,則它將被設(shè)置為與sigmaX相等的值。如果這兩者都為0,則它們的值會(huì)從ksize中計(jì)算得到。計(jì)算公式為:

borderType:像素外推法,默認(rèn)為None(參考官方文檔 BorderTypes

)

在圖像處理中,高斯濾波主要有兩種方式:

1.窗口滑動(dòng)卷積

2.傅里葉變換

在此主要利用窗口滑動(dòng)卷積。其中二維高斯函數(shù)公式為:

根據(jù)上述公式,生成一個(gè)3x3的高斯核,其中最重要的參數(shù)就是標(biāo)準(zhǔn)差 ,標(biāo)準(zhǔn)差 越大,核中心的值與周圍的值差距越小,曲線越平滑。標(biāo)準(zhǔn)差 越小,核中心的值與周圍的值差距越大,曲線越陡峭。

從圖像的角度來說,高斯核的標(biāo)準(zhǔn)差 越大,平滑效果越不明顯。高斯核的標(biāo)準(zhǔn)差 越小,平滑效果越明顯。

可見,標(biāo)準(zhǔn)差 越大,圖像平滑程度越大

參考博客1:關(guān)于GaussianBlur函數(shù)

參考博客2:關(guān)于高斯核運(yùn)算

文章標(biāo)題:python濾波核函數(shù) python濾波器信號(hào)處理
URL地址:http://www.muchs.cn/article44/dogipee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航、小程序開發(fā)、ChatGPT

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司