Gaussian blur là gì

Môi trường "hành sự" Linux (nội dung bài viết sử dụng Ubuntu 16.04) OpenCV (bài viết sử dụng OpenCV 3.4.1) Pybé nhỏ (nội dung bài viết thực hiện Pynhỏ nhắn 3.5.5) Ảnh chủng loại nhằm xử lý: girl_luv.jpg

quý khách rất có thể tải về ảnh mẫu về:

*

Hình ảnh cội rõ lắm, tuy nhiên bản thân cố ý chế tạo ra thách thức bằng cách thêm nhiễu để bao gồm dòng để làm mang lại mấy bộ có tác dụng mờ chứ :P

*

Hiệu ứng có tác dụng mờ ảnh

Khi nói đến Việc có tác dụng mờ hình hình ảnh, bạn sẽ nghĩ ngay lập tức đến sự việc tại bản thân đề xuất có tác dụng điều đó? Ảnh vẫn rõ vậy làm cho mờ bỏ ra mang lại cạnh tranh nhìn ta?!

Thực ra vào giải pháp xử lý ảnh, phnghiền làm mờ ảnh được sử dụng không ít và có nhiều vai trò đặc trưng. Hiệu ứng làm mờ mang về (áp dụng trong số ngôi trường hợp):

Giảm nhiễu (noise) trong ảnhLàm trót lọt hình ảnh (smooth). Việc làm trơn tuột ảnh đang bớt nhan sắc đường nét của cạnh, ráng vào kia, vùng trơn tru sẽ lan ra

Trong những bài xích báo về cách xử trí ảnh, sinh sống bước chi phí cách xử lý bọn họ hay sử dụng 2 phnghiền chuyển đổi sau:

Cân bởi sángLàm mờ

Kích thước hành lang cửa số của các cỗ lọc làm thường xuyên là SỐ LẺ NGUYÊN DƯƠNG (3, 5, 7, 9, …). Chính vì chưng kích cỡ lẻ bắt buộc ta vẫn chỉ có một px vị trí trung tâm kernel, vấn đề đó tách vấn đề ta cần lần khần đề nghị mang pixel trái xuất xắc đề xuất làm pixel trung tâm NẾU size cỗ thanh lọc là số chẵn!

Việc chọn form size cỗ lọc thường phụ thuộc size ảnh đầu vào cùng tay nghề. Kernel thường có thiết kế hình vuông (tức width = height)

Tính tân oán cách xử lý chất nhận được biến đổi làm mờ ảnh đó là cần sử dụng toán thù tử convolution nhằm áp cửa sổ / bộ lọc lên hình ảnh nơi bắt đầu.

Bạn đang xem: Gaussian blur là gì

Tiếp theo, mình vẫn trình làng 3 bộ làm cho mờ bớt nhiễu phổ biến: Box Filter, Gaussian Filter với Median Filter

Bộ lọc mờ vừa phải (Box Filter)Bộ thanh lọc làm cho mờ mức độ vừa phải có phong cách thiết kế bằng phương pháp tùy chỉnh thiết lập mỗi cực hiếm bên trên bộ thanh lọc bằng: 1/(W*H).Tức là trường hợp Width cùng Height của bộ lọc bằng 3. Thì giá trị bên trên cửa sổ convolve sầu đã là: 1/9.

Xem thêm: Cách Nấu Riêu Cá Với Dưa Chua Ngon❤️, Cách Làm Canh Cá Dưa Chua Thanh Mát Ngon Chuẩn Vị

box_blur.py


import osimport cv2INPUT = "girl_luv.jpg"KERNEL_WIDTH = 3KERNEL_HEIGHT = 3if not os.path.isfile(INPUT): raise Exception("File not found
%s" % INPUT)img = cv2.imread(INPUT)blur_img = cv2.blur(img, ksize=(KERNEL_WIDTH, KERNEL_HEIGHT)) # or cv2.boxFiltercv2.imwrite("box_blur_%s_%d_%d.jpg" % (os.path.splitext(os.path.basename(INPUT))<0>, KERNEL_WIDTH, KERNEL_HEIGHT), blur_img)

*

Hãy test biến đổi các hằng số trong code nhằm trải nghiệm các mức độ làm cho mờ khác biệt nhé:

KERNEL_WIDTHKERNEL_HEIGHTBộ lọc có tác dụng mờ Gaussian (Gaussian Filter)Ngoài kích thước cửa sổ, bộ thanh lọc Gaussian còn cho phép tùy chỉnh thêm 2 tham mê số là: Sigma X với Sigma Y, tức độ lệch chuẩn theo trục x cùng trục y tương xứng.

Xem thêm: Hướng Dẫn Cách Tải Ứng Dụng Iphone Ở Đâu, Hướng Dẫn Cách Tải Ứng Dụng Cho Iphone Dễ Dàng

gaussian_blur.py


import osimport cv2INPUT = "girl_luv.jpg"KERNEL_WIDTH = 9KERNEL_HEIGHT = 9SIGMA_X = 4SIGMA_Y = 4if not os.path.isfile(INPUT): raise Exception("File not found
%s" % INPUT)img = cv2.imread(INPUT)blur_img = cv2.GaussianBlur(img, ksize=(KERNEL_WIDTH, KERNEL_HEIGHT), sigmaX=SIGMA_X, sigmaY=SIGMA_Y)cv2.imwrite("gaussian_blur_%s_%d_%d_%d_%d.jpg" % (os.path.splitext(os.path.basename(INPUT))<0>, KERNEL_WIDTH, KERNEL_HEIGHT, SIGMA_X, SIGMA_Y), blur_img)

*

Hãy thử thay đổi các hằng số vào code để đề xuất những mức độ có tác dụng mờ khác biệt nhé:

KERNEL_WIDTHKERNEL_HEIGHTSIGMA_XSIGMA_YBộ lọc có tác dụng mờ trung vị (Median Filter)Trung vị (median) là ta lấy ra giá trị trung vị sau thời điểm sắp trang bị từ bỏ hàng số. Ví dụ: median(<6, 8, 11, 4, 1>) = 6. Giải: sau khi sắp tới đồ vật trường đoản cú hàng <6, 8, 11, 4, 1>, ta được <1, 4, 6, 8, 11> => số trọng tâm hàng sẽ sắp đến sản phẩm từ bỏ là 6.Rất hiệu quả với nhiễu muối hạt tiêu (tức nhiễu các phân tử nhỏ tuổi trong ảnh).Trong OpenCV, tsay mê số mang đến cỗ lọc trung vị chỉ có KERNEL_SIZE (cấm đoán sệt tả Width / Height) với bắt buộc là số lẻ.

median_blur.py


import osimport cv2INPUT = "girl_luv.jpg"KERNEL_SIZE = 9if not os.path.isfile(INPUT): raise Exception("File not found
%s" % INPUT)img = cv2.imread(INPUT)blur_img = cv2.medianBlur(img, KERNEL_SIZE)cv2.imwrite("median_blur_%s_%d.jpg" % (os.path.splitext(os.path.basename(INPUT))<0>, KERNEL_SIZE), blur_img)

*

Hãy test thay đổi các hằng số trong code nhằm từng trải những mức độ có tác dụng mờ không giống nhau nhé:


Chuyên mục: Kiến thức