圖像濾波是一種十分常見的圖像處理手段。通常,你可以認為相鄰位置像素是緊密聯系的,它們共同來顯示對某個物體,圖像濾波則通過運算來排除圖像中和周圍相差大的像素。當然,這并不是絕對的, 有時候你為了評估圖像的質量,也會將這些“特立獨行”的像素作為選取的目標 。無論你采用什么方法,記住你要的目標就行,有時候你的目標可能是別人的背景。
茶陵網站制作公司哪家好,找創新互聯建站!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯建站從2013年開始到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯建站。
濾波常常會使得圖像變得模糊(非絕對),那么,為什么你需要將一幅清晰的圖像變得模糊呢?下面的例子應該可以解釋。
高斯濾波采用滿足正態分布的核模板,其參數的主要參數是標準差σ,代表核的離散程度,σ值越小,模板中心系數與邊緣系數差越大,平滑的程度越小。
高斯濾波對圖像采集過程中由于不良照明/高溫引起的傳感器噪聲信號有較好的效果,消除了圖像中的高頻信號。
由于得到的是一維的Gaussian Kernel,你可以采用下面的方式轉為二維的
為了便于直觀感受高斯濾波的效果,使用Canny算子來提取輪廓對比,你可以試試在特征提取前加高斯濾波對比。
補充說明:對于均值濾波,你也可以使用cv2.boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]])來實現,需要將normalize設置為True,當設置normalize為False時,實現的是將kernel內像素相加,官方文檔做出的描述為:
中值濾波對圖像中的脈沖型(椒鹽等)噪聲信號處理效果好,當 你的應用場景存在這種顆粒感的噪聲信號時,中值濾波會是一種很好的選擇 。它,選取kernel區域內像素點集的中值最為錨點的像素值,對類似投票機制中的最高分(高灰階點)和最低分(過低灰階點)影響有很好的抑制作用。
如果你的應用涉及到圖像美化,雙邊濾波可以初步達到你的期望,關于雙邊濾波,這里不做展開,由你來探索,其函數參數信息如下。
對于opencv-python的圖像濾波部分有問題歡迎留言, Have Fun With OpenCV-Python, 下期見。
如何用python實現圖像的一維高斯濾波器
現在把卷積模板中的值換一下,不是全1了,換成一組符合高斯分布的數值放在模板里面,比如這時中間的數值最大,往兩邊走越來越小,構造一個小的高斯包。實現的函數為cv2.GaussianBlur()。對于高斯模板,我們需要制定的是高斯核的高和寬(奇數),沿x與y方向的標準差(如果只給x,y=x,如果都給0,那么函數會自己計算)。高斯核可以有效的出去圖像的高斯噪聲。當然也可以自己構造高斯核,相關函數: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‘)
borderType= None)函數
此函數利用高斯濾波器平滑一張圖像。該函數將源圖像與指定的高斯核進行卷積。
src:輸入圖像
ksize:(核的寬度,核的高度),輸入高斯核的尺寸,核的寬高都必須是正奇數。否則,將會從參數sigma中計算得到。
dst:輸出圖像,尺寸與輸入圖像一致。
sigmaX:高斯核在X方向上的標準差。
sigmaY:高斯核在Y方向上的標準差。默認為None,如果sigmaY=0,則它將被設置為與sigmaX相等的值。如果這兩者都為0,則它們的值會從ksize中計算得到。計算公式為:
borderType:像素外推法,默認為None(參考官方文檔 BorderTypes
)
在圖像處理中,高斯濾波主要有兩種方式:
1.窗口滑動卷積
2.傅里葉變換
在此主要利用窗口滑動卷積。其中二維高斯函數公式為:
根據上述公式,生成一個3x3的高斯核,其中最重要的參數就是標準差 ,標準差 越大,核中心的值與周圍的值差距越小,曲線越平滑。標準差 越小,核中心的值與周圍的值差距越大,曲線越陡峭。
從圖像的角度來說,高斯核的標準差 越大,平滑效果越不明顯。高斯核的標準差 越小,平滑效果越明顯。
可見,標準差 越大,圖像平滑程度越大
參考博客1:關于GaussianBlur函數
參考博客2:關于高斯核運算
文章標題:python濾波核函數 python濾波器信號處理
URL地址:http://m.kartarina.com/article44/dogipee.html
成都網站建設公司_創新互聯,為您提供網站內鏈、營銷型網站建設、品牌網站建設、網站導航、小程序開發、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯