在影像處理中,模糊化圖像是一項最基本且重要的技巧。
本文將簡單示範如何透過 OpenCV 使用 Convolution 技巧對圖片進行模糊化處理。
Convolution 模糊化圖片概念:
接下來將示範如何簡單用 OpenCV Custormize Kernel 對圖片進行 convolution,將其模糊化。
程式碼(Python):
import cv2
import numpy as np
dog_pic = '../images/dog.png' # 圖片位址
dog_img = cv2.imread(dog_pic)
window_sizes = [3, 5, 10] # 捲積的 Window Size
imgs = [dog_img]
for k in window_sizes:
blurring_kernel = np.ones((k, k))/(k*k)
# 可以將註解拿掉觀察 kernel 的樣子
# print(blurring_kernel)
blurred_img = cv2.filter2D(src=dog_img, ddepth = -1, kernel = blurring_kernel)
cv2.putText(blurred_img, f'k={k}', (10,50), cv2.FONT_ITALIC, 1.5, (0,0,0), 2, cv2.FILLED) # 將 window size 的文字描述放入適當位置
imgs.append(blurred_img)
cv2.imshow('original pic with different window sizes', np.hstack(imgs))
cv2.waitKey()
cv2.destroyAllWindows()
Result:
Note:
以上就是使用 kernel 對圖像進行模糊化的相關介紹, 謝謝~