OpenCV là một trong những gói python tốt nhất để xử lý hình ảnh. Cũng giống như các tín hiệu mang theo nhiễu đi kèm với nó, hình ảnh cũng chứa các loại nhiễu khác nhau chủ yếu từ chính nguồn phát (Cảm biến máy ảnh). Gói Python OpenCV cung cấp các cách làm mịn hình ảnh còn được gọi là làm mờ. Đây là những gì chúng ta sẽ làm trong phần này. Một trong những kỹ thuật phổ biến là sử dụng bộ lọc Gaussian (Gf) để làm mờ hình ảnh. Với tính năng này, mọi cạnh sắc nét trong hình ảnh đều được làm mịn trong khi giảm thiểu quá nhiều nhòe.
Cú pháp
cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType=BORDER_DEFAULT]]] )
Ở đâu -
-
src - hình ảnh đầu vào
-
dst - hình ảnh đầu ra
-
ksize - Kích thước hạt nhân Gaussian [chiều rộng chiều cao]. Nếu ksize được đặt thành [0 0], thì ksize được tính từ các giá trị sigma.
-
sigmaX - Độ lệch chuẩn của hạt nhân dọc theo trục X (hướng ngang).
-
sigmaY - độ lệch chuẩn của nhân dọc theo trục Y (Hướng dọc).
-
Loại đường viền - Chỉ định ranh giới iage trong khi kernel được áp dụng trên đường viền hình ảnh. Một số giá trị có thể có là:cv.BORDER_CONSTANT, cv.BORDER_REPLICATE, cv.BORDER_REFLECT, cv.BORDER_WRAP, cv.BORDER_DEFAULT, cv.BORDER_ISOLATED, cv.BORDER_TRANSPARENT, v.v.
Dưới đây là chương trình Gaussian làm mờ hình ảnh bằng gói 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
Kết quả
Hai hình ảnh trông gần như tương tự (ảnh gốc / mờ). Bây giờ chúng ta hãy tăng kích thước hạt nhân và quan sát kết quả.
dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)
Bây giờ có sự phân biệt rõ ràng giữa hai hình ảnh.