Cv2.filter2d意思
cv2.filter2d
是 Python 中的 OpenCV 庫中的一個函式,它用於在二維圖像上套用濾波器。這個函式可以用來實現各種圖像處理操作,例如模糊、銳化、邊緣檢測等。
cv2.filter2d
的基本語法如下:
cv2.filter2D(src, ddepth, kernel, dst, anchor=None, delta=0, borderType=cv2.BORDER_DEFAULT)
其中參數的含義如下:
src
: 輸入圖像。ddepth
: 輸出圖像的深度。kernel
: 濾波器核心,通常是一個二維數組。dst
: 輸出圖像。anchor
: 核心錨點的位置,默認值是 None,表示使用核心的中心。delta
: 一個可選的常數,用於在濾波後添加到結果中。borderType
: 邊界模式,用於處理圖像邊界。
例如,以下代碼使用了一個均值濾波器(即模糊)來平滑圖像:
import cv2
import numpy as np
# 讀取圖像
img = cv2.imread('your_image.jpg')
# 創建濾波器核心
kernel = np.ones((3, 3), np.float32) / 9 # 創建一個3x3的均值濾波器
# 套用濾波器
blurred = cv2.filter2D(img, -1, kernel) # -1表示輸出圖像與輸入圖像具有相同的深度
# 顯示結果
cv2.imshow('Original', img)
cv2.imshow('Blurred', blurred)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個例子中,我們使用了一個3x3的均值濾波器,它將鄰近像素的平均值作為中心像素的新值。-1
表示輸出圖像與輸入圖像具有相同的深度,即如果輸入圖像是 8 位,則輸出圖像也是 8 位。
cv2.filter2D
函式非常強大,可以用來實現各種圖像處理操作,具體取決於你選擇的濾波器核心。