如何在使用Python的OpenCV中對影像執行雙邊濾波操作?
雙邊濾波操作在影像平滑和去除噪聲方面非常有效。雙邊濾波的主要優點是它可以保留邊緣,這與平均濾波和中值濾波不同。與其他濾波器相比,雙邊濾波操作速度較慢。我們可以使用`cv2.bilateralFilter()`方法對影像執行雙邊濾波。
語法
以下是此方法的語法。
cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace)
此方法接受以下**引數**:
**img** − 應用雙邊濾波操作的輸入影像。
**d** − 整型變數,表示畫素鄰域的直徑。
**sigmaColor** − 整型值,表示顏色空間中的濾波器sigma。值越大,彼此越遠的顏色就越容易混合。
**sigmaSpace** − 整型值,表示座標空間中的濾波器sigma。值越大,越遠的畫素越容易混合,前提是它們的顏色在sigmaColor範圍內。
步驟
要執行雙邊濾波操作,您可以按照以下步驟操作:
匯入所需的庫。在以下所有Python示例中,所需的Python庫是**OpenCV**。請確保您已經安裝了它。
import cv2
讀取輸入影像。
img = cv2.imread('birds.jpg')
對輸入影像應用雙邊濾波。我們將d、sigmaColor和sigmaSpace分別作為9、15和15傳遞給函式。
bilateral = cv2.bilateralFilter(img, 9, 75, 75)
顯示雙邊濾波後的影像。
cv2.imshow('bilateral.jpg', bilateral)
cv2.waitKey(0)
cv2.destroyAllWindows())
示例
讓我們來看一個對輸入影像執行雙邊濾波操作的示例。
import cv2 # Read the image. img = cv2.imread('birds.jpg') # Apply bilateral filter with d = 9, # sigmaColor = sigmaSpace = 75. bilateral = cv2.bilateralFilter(img, 9, 75, 75) # display the output cv2.imshow('bilateral.jpg', bilateral) cv2.waitKey(0) cv2.destroyAllWindows()
我們將在本程式中使用以下影像作為**輸入檔案**:

輸出
執行上述程式碼後,將產生以下輸出:
We applied bilateral filter with d=9, sigmaColor=55 and sigmaSpace=55
並且,我們將得到以下輸出視窗:

注意輸入影像和雙邊濾波後圖像之間的差異。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP