10. 邊緣保留濾波EPF-cv2.bilateralFilter()、cv2.pyrMeanShiftFiltering()
1. 什麼是EPF?
高斯模糊: 基於權重,權重只考慮畫素空間的分佈,中間的權重大,邊緣的權重小。沒有考慮畫素值之間的差異問題,沒有考慮邊緣。
邊緣保留濾波: 畫素之間的差異很大,說明是顯著特徵,如果直接平滑(濾波),顯著特徵會消失。畫素之間差異大的地方通常是邊緣,所以邊緣保留濾波處理後的圖片,在平滑(濾波)的情況下,依舊能夠保留影像的邊緣.。
2. 實現方式:
2.1 高斯雙邊濾波-cv2.bilateralFilter
雙邊濾波是一種非線性的濾波方法,是結合影像的空間鄰近度和畫素值相似度的一種折衷處理,同時考慮空間與資訊和灰度相似性,達到保邊去噪的目的,具有簡單、非迭代、區域性處理的特點。之所以能夠達到保邊去噪的濾波效果是因為濾波器由兩個函式構成:一個函式是由幾何空間距離決定濾波器係數,另一個是由畫素差值決定濾波器係數.
- 實現函式:cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)
- 引數說明:
-
src:輸入影像
-
d:過濾時周圍每個畫素領域的直徑
-
sigmaColor:Sigma_color較大,則在鄰域中的畫素值相差較大的畫素點也會用來平均。
-
sigmaSpace:Sigma_space較大,則雖然離得較遠,但是,只要值相近,就會互相影響。
將sigma_space設定較大,sigma_color設定較小,可獲得較好的效果(椒鹽噪聲)。
2.2 均值遷移濾波-cv2.pyrMeanShiftFiltering()
原理:meanShfit均值漂移演算法是一種通用的聚類演算法,它的基本原理是:對於給定的一定數量樣本,任選其中一個樣本,以該樣本為中心點劃定一個圓形區域,求取該圓形區域內樣本的質心,即密度最大處的點,再以該點為中心繼續執行上述迭代過程,直至最終收斂。可以利用均值偏移演算法的這個特性,實現彩色影像分割.
實現函式:cv2.pyrMeanShiftFiltering(src, dst, double sp, double sr, int maxLevel=1, TermCriteria termcrit=TermCriteria)
引數如下:
- src,輸入影像,8位,三通道的彩色影像;
- dst,輸出影像,跟輸入src有同樣的大小和資料格式;
- sp,定義的漂移物理空間半徑大小;
- sr,定義的漂移色彩空間半徑大小;
- maxLevel,定義金字塔的最大層數;
- termcrit,定義的漂移迭代終止條件,可以設定為迭代次數滿足終止,迭代目標與中心點偏差滿足終止,或者兩者的結合;
3. 程式碼如下:
import cv2 as cv
import numpy as np
def bi_demo(image): # bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
dst = cv.bilateralFilter(image, 0, 100, 15) # 高斯雙邊
cv.imshow("bi_demo", dst)
def shift_demo(image): # 均值遷移
dst = cv.pyrMeanShiftFiltering(image, 10, 50)
cv.imshow("shift_demo", dst)
if __name__ == '__main__':
src = cv.imread("../images/CrystalLiu1.jpg") # 讀入圖片放進src中
cv.namedWindow("Crystal Liu") # 建立視窗
cv.imshow("Crystal Liu", src) # 將src圖片放入該建立的視窗中
bi_demo(src)
shift_demo(src)
cv.waitKey(0) # 等有鍵輸入或者1000ms後自動將視窗消除,0表示只用鍵輸入結束視窗
cv.destroyAllWindows() # 關閉所有視窗
相關文章
- 詳解數字影像的濾波和邊緣檢測
- 【OpenCV】鄰域濾波:方框、高斯、中值、雙邊濾波OpenCV
- OpenCV計算機視覺學習(4)——影像平滑處理(均值濾波,高斯濾波,中值濾波,雙邊濾波)OpenCV計算機視覺
- 高通濾波法、微分運算元法、神經網路方法實現邊緣檢測神經網路
- [Python影象處理] 四.影象平滑之均值濾波、方框濾波、高斯濾波及中值濾波Python
- 均值濾波
- 邊緣計算2.0時代,“雲邊緣”與“邊緣雲”你分清了嗎?
- 數字濾波器和模擬濾波器(一)
- 圖片濾波
- 秒懂邊緣雲 | 邊緣雲技術進階
- 【從0到1學習邊緣容器系列1】之 邊緣計算與邊緣容器的起源
- OpenCV 線性濾波OpenCV
- vivado fir濾波器
- 卡爾曼濾波
- 引導濾波GuidedFilterGUIIDEFilter
- 天翼雲邊緣函式、邊緣安全專案入選“可信邊緣計算推進計劃”函式
- 點雲濾波器與過濾器過濾器
- 濾波演算法——十大濾波演算法程式大全演算法
- 影像邊緣檢測
- 邊緣應用場景需求興起,FusionCube解碼智慧邊緣!
- 空域濾波演算法演算法
- LMS自適應濾波
- 邊緣計算|Hadoop——邊緣計算和Hadoop是什麼關係?Hadoop
- 雲原生與邊緣計算的碰撞——邊緣原生應用實踐
- 從中心走向邊緣——深度解析雲原生邊緣計算落地痛點
- AI影片邊緣分析盒AI
- 一維卡尺邊緣對
- 影像的邊緣檢測
- 邊緣計算系列科普(五)邊緣計算中的關鍵技術
- 【從0到1學習邊緣容器系列2】之 邊緣應用管理
- 音訊降噪-fir濾波器音訊
- 頻率域濾波基本操作
- 實驗六 有源濾波器
- 利用Matlab filterDesigner 工具生成FIR濾波器函式,並呼叫實現低通濾波MatlabFilter函式
- Aruba的智慧邊緣時代
- 3.Canny邊緣檢測
- 邊緣計算 KubeEdge+EdgeMash
- KubeEdge邊緣自治設計原理