使用OpenCV Python程式模糊影像?
OpenCV是最好的Python影像處理庫之一。就像訊號會帶有噪聲一樣,影像也包含各種噪聲,主要來自影像源本身(相機感測器)。Python OpenCV庫提供了影像平滑(也稱為模糊)的方法。這就是我們將在本節中要做的。一種常用的技術是使用高斯濾波器 (Gf) 來模糊影像。這樣可以平滑影像中的任何銳利邊緣,同時最大限度地減少過度模糊。
語法
cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType=BORDER_DEFAULT]]] )
其中:
src – 輸入影像
dst – 輸出影像
ksize – 高斯核大小 [高度 寬度]。如果 ksize 設定為 [0 0],則 ksize 從 sigma 值計算。
sigmaX – 沿 X 軸(水平方向)的核標準差。
sigmaY – 沿 Y 軸(垂直方向)的核標準差。
Bordertype – 指定在核心應用於影像邊界時影像邊界。一些可能的值包括:cv.BORDER_CONSTANT, cv.BORDER_REPLICATE, cv.BORDER_REFLECT, cv.BORDER_WRAP, cv.BORDER_DEFAULT, cv.BORDER_ISOLATED, cv.BORDER_TRANSPARENT 等。
下面是使用OpenCV庫對影像進行高斯模糊的程式。
import cv2 import numpy # read image src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED) # apply guassian blur on src image dst = cv2.GaussianBlur(src,(3,3),cv2.BORDER_DEFAULT) # display input and output image cv2.imshow("Gaussian Blur",numpy.hstack((src, dst))) cv2.waitKey(0) # waits until a key is pressed cv2.destroyAllWindows() # destroys the window showing image
結果
兩張影像看起來幾乎相同(原始/模糊)。現在讓我們增加核心大小並觀察結果。
dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)
現在兩張影像之間有明顯的區別。
廣告