天天看點

OpenCV與Python之圖像濾波

介紹四篇圖像平滑方式:

均值濾波

方框濾波

高斯濾波

中值濾波

1. 均值濾波

原理:将對應核中的元素求和取平均

指令:img2 = cv2.blur(原始圖像,核大小)  #核大小是一個元組

img2 = cv2.blur(img, (7, 7))
           
OpenCV與Python之圖像濾波

 2. 方框濾波

原理:對核中像素值求和(求和很容易導緻像素值超過255,是以容易出現白化圖像),或者求和取平均

指令:img2 = cv2.boxFilter(原始圖像, 目标圖像深度, 核大小, normalize屬性)

normalize=0表示核内所有元素求和,normalize=1表示均值濾波,預設為均值

img2 = cv2.boxFilter(img, -1, (2, 2), normalize=1)
           
OpenCV與Python之圖像濾波

3. 高斯濾波

原理:在核中根據高斯函數來确定核中像素值的比重,離中心元素越近比重越大,反之越小

指令:dst = cv2.GaussianBlur(src, ksize, sigmaX)   # ksize必須是奇數

# sigmaX:高斯核在x方向的标準差

# sigmaY:高斯核在y方向的标準差(sigmaY=0時,其值自動由sigmaX确定(sigmaY=sigmaX);sigmaY=sigmaX=0時,它們的值将由ksize.width和ksize.height自動确定)

img2 = cv2.GaussianBlur(img, (7,7), 0)
           
OpenCV與Python之圖像濾波

4. 中值濾波

原理:核中像素值的中值作為圖像像素值

指令:dst = cv2.medianBlur(src, ksize)   # ksize不是能是元組,就是一個數字

img2 = cv2.medianBlur(img, 7)
           
OpenCV與Python之圖像濾波