OpenCV半小時掌握基本操作之高斯雙邊
【OpenCV】 ⚠️高手勿入! 半小時學會基本操作 ⚠️ 高斯雙邊
概述
OpenCV 是一個跨平臺的計算機視覺庫, 支持多語言, 功能強大. 今天帶大家用 OpenCV 來實現一個簡單的磨皮.
邊緣保留濾波 (EPF)
邊緣保留濾波 (Edge Preserving Filter) 是圖像處理的一種技術. 有別與傳統(tǒng)濾波, EPF 會對差別較大的像素區(qū)域進行區(qū)分, 在保持邊緣銳利的同時消除噪聲或紋理.
高斯雙邊
雙邊濾波 (Bilateral Filter) 即高斯濾波. 濾波器由兩個函數構成. 一個函數是由集合空間距離決定濾波器系數. 另一個是由像素差值決定濾波系數.
格式:
cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
參數:
- src: 輸入圖像
- d: 相鄰像素的直徑
- sigmaColor: 顏色空間過濾
- sigmaSpace: 坐標空間過濾
例子:
import numpy as np import cv2 # 讀取圖片 image = cv2.imread("face.jpg") # 高斯二邊 dest = cv2.bilateralFilter(image, 0, 100, 15) # 圖片展示 combine = np.hstack((image, dest)) cv2.imshow("combine", combine) cv2.waitKey(0) cv2.destroyAllWindows() # 保存結果 cv2.imwrite("bilateral.jpg", combine)
輸出結果:
高斯模糊 vs 高斯雙邊:
均值遷移
均值遷移 (Mean-Shift Blur) 會計算得到像素均值與空間位置均值, 使用新的均值作為窗口中心位置.
格式:
cv2.pyrMeanShiftFiltering(src, sp, sr, dst=None, maxLevel=None, termcrit=None)
參數:
- src: 輸入圖像
- sp: 空間窗口半徑
- sr: 顏色窗口半徑
- maxLevel: 分割金字塔的最大級別
- termcrit: 終止條件, 默認為 None
例子:
import numpy as np import cv2 # 讀取圖片 image = cv2.imread("face.jpg") # 均值遷移 dest = cv2.pyrMeanShiftFiltering(image, 10, 50) # 圖片展示 combine = np.hstack((image, dest)) cv2.imshow("combine", combine) cv2.waitKey(0) cv2.destroyAllWindows() # 圖片保存 cv2.imwrite("mean_shift.jpg", combine)
輸出結果:
到此這篇關于OpenCV半小時掌握基本操作之高斯雙邊的文章就介紹到這了,更多相關OpenCV高斯雙邊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于Python 多重繼承時metaclass conflict問題解決與原理探究
這篇文章主要介紹了Python 多重繼承時metaclass conflict問題解決與原理探究 ,需要的朋友可以參考下2022-10-10