代碼和筆記
import cv2
import numpy as np"""
濾波器--用于圖像處理的重要工具,它們可以根據(jù)圖像中像素的鄰域信息來修改像素值,以實(shí)現(xiàn)去噪、模糊、銳化、邊緣檢測等效果。低通濾波器(Low-pass Filter):
定義:允許低頻信號通過,但減弱(或阻止)高頻信號的濾波器。
原理:在頻率域中,低通濾波器會移除高于某個(gè)截止頻率(cut-off frequency)的所有頻率分量。高通濾波器(High-pass Filter):
定義:允許高頻信號通過,但減弱(或阻止)低頻信號的濾波器。
原理:在頻率域中,高通濾波器會移除低于某個(gè)截止頻率的所有頻率分量。
""""""
低通濾波器 平滑圖像,去除圖像中的高頻噪聲和細(xì)節(jié)
""""""
卷積操作
"""
img = cv2.imread('/img/cat.jpeg')
kernel = np.ones((5, 5), np.float32) / 25
dst = cv2.filter2D(img, -1, kernel)cv2.imshow('img', img)"""
方盒濾波和均值濾波
作用:通過求取像素周圍領(lǐng)域像素的平均值來平滑(使圖像亮度平緩漸變,減小突變梯度,從而改善圖像質(zhì)量)圖像
特點(diǎn):算法簡單,計(jì)算速度較快。然而,在去除噪聲的同時(shí),也會去除很多細(xì)節(jié)部分,導(dǎo)致圖像變得模糊。
"""
dst1 = cv2.boxFilter(img, -1, (5, 5), normalize=True)
dst2 = cv2.blur(img, (5, 5))"""
高斯波濾器
作用:通過高斯函數(shù)對像素鄰域內(nèi)的像素值進(jìn)行加權(quán)平均,得到新的像素值。越在中間,比重占的越大。
特點(diǎn):比均值濾波更平滑,邊界保留更加好。能夠有效地去除噪聲,并保留圖像中的細(xì)節(jié)部分。
"""
dst3 = cv2.GaussianBlur(img, (5, 5), sigmaX=10)"""
中值濾波
作用:對像素鄰域內(nèi)的像素值進(jìn)行排序,取中值作為該像素的新值。
特點(diǎn):在邊界保存方面好于均值濾波,特別適用于去除椒鹽噪聲。但在模板變大時(shí),可能會存在一些邊界的模糊。
"""
dst4 = cv2.medianBlur(img, 5)"""
雙邊濾波器--美顏
作用:考慮像素的空間鄰近度和像素值相似度的一種折中處理,同時(shí)達(dá)到保邊去噪的目的。
特點(diǎn):是一種非線性濾波,保留較多的高頻信息,對低頻濾波效果較好,但不能去除脈沖噪聲。
"""
dst5 = cv2.bilateralFilter(img, 7, sigmaColor=20, sigmaSpace=50)cv2.waitKey(0)
cv2.destroyAllWindows()