Top Ad unit 728 × 90

Latest news

recent

Gaussian Blur

Gaussian Blur là cách làm mờ một ảnh bằng hàm Gaussian. Phương pháp này được ứng dụng một cách rộng rãi và hiệu quả trong các phần mềm xử lý đồ họa. Nó cũng là công cụ phổ biến để thực hiện quá trình tiền xử lý (preprocessing) hình ảnh dùng làm dữ liệu đầu vào tốt cho các phân tích cao cấp hơn như trong Computer Vision, hoặc cho các giải thuật được thực hiện trong một tỉ lệ khác của hình được cho. Nó có thể giúp làm giảm nhiễu (Noise) và mức độ chi tiết (không mong muốn) của hình ảnh.
Một cách trực quan, đây được xem như là phương pháp làm mờ mịn cũng giống như hiệu ứng hình ảnh được đặt dưới một lớp màn trong suốt bị mờ. Nó không giống với trường hợp hình ảnh bị mờ do hậu quả của ống kính bị mất tiêu điểm (out of focus) hay do bóng của đối tượng dưới ánh sáng thường.
Trong toán học, việc ứng dụng Gaussian Blur cho một hình cũng chính là tính tích chập (Convolution) hình đó với hàm Gaussian. Vì biến đổi Fourier của một Gaussian sẽ tạo ra một Gaussian khác cho nên nếu xét trên miền tần số thì phương pháp này sẽ làm giãm các thành phần có tần số cao trong hình. Hay nói cách khác Gaussian Blur là một bộ lọc tần số cao (low pass filter : chỉ giữ lại các thành phần tần số thấp).
Hình gốc


Hình bị Blur

Như vậy phát biểu một cách thực hành hơn Gaussian blurr là một loại bộ lọc làm mờ ảnh, sử dụng lý thuyết hàm Gaussian (cũng được biết đến như là dạng phân tán chuẩn (Normal Distribution) trong thống kê) để tính toán việc chuyển đổi (Transformation) mỗi Pixel của hình. Dưới đây là phương trình hàm Gaussian dùng trong không gian một chiều và hai chiều.

Một chiều
Hai chiều (image)

Trong đó x và y là tọa độ theo hai trục đứng và ngang còn σ là phương sai chuẩn của phân tán Gaussian hay là giá trị quyết định độ lệch giữa các điểm trên bề mặt Gaussian. Trong không gian hai chiều, công thức này sản sinh ra những đường viền là những đường tròn đồng tâm, tuân theo logic phân tán Gaussian từ điểm trung tâm. Giá trị từ hệ thống phân tán này sẽ được sử dụng để xây dựng một ma trận tích chập (Convolution) dùng tính tóan phép tích chập (Convolution) với hình ảnh gốc. Các phương pháp tính Convolution khi biết ma trận tích chập (kernel) và ma trận gốc (ma trận ảnh) có thể được tham khảo trong bài viết về Convolution trong blog này.

Giá trị mới của mỗi Pixel sau khi tính tích chập với kernel đại diện cho hàm Gaussian có thể coi là trung bình lượng giá của các pixel xung quanh nó. Ta thấy rằng giá trị lượng giá của phần tử trung tâm kernel tương ứng với pixel đang xét là lớn nhất, giá trị này sẽ nhỏ hơn đối với các phần tử tương ứng với những pixel kế cận một cách đối xứng và tỉ lệ thuận với khoảng cách của phần tử này với trung tâm. Tính chất này giúp giữ lại đường viền và biên cũng như làm mờ một cách đồng bộ hơn so với các phương pháp khác.

Trong lý thuyết, hàm Gaussian tại mỗi điểm trên hình là khác 0. Điều này có nghĩa là Gaussian Kernel nên có kích thước bằng với hình ảnh và giá trị tại mỗi phần tử luôn khác 0. Tuy nhiên trong thực hành, do việc tính tóan dựa trên xấp xỉ rời rạc (Discrete Approximation) cho nên giá trị của các phần tử trên bề mặt Gaussian ở khỏang cách lớn hơn 3σ so với trung tâm gần như không đáng kể (tiệm cận 0). Do vậy các phân tán Gaussian ngòai bán kính này sẽ bị bỏ qua, đó cũng là lý do mà thông thường Gaussian kernel có kích thước giới hạn 3, 5, 7... (Cái này còn tùy vào giá trị phương sai chuẩn mà bạn chọn). Khoảng cách giữa hai điểm gần nhau trong Gaussian Kernel là σ.

Do đặc tính có cấu trúc như những hình tròn đối xứng, với hình hai chiều, Gaussian blur có thể được áp dụng như là hai phép tính toán một chiều độc lập (Độc lập tuyến tính - Linearly Separable). Có nghĩa là hiệu quả thu được từ tính toán trên ma trận hai chiều có thể tương đương với cách ứng dụng tính toán một loạt các Gaussian 1 chiều theo hướng ngang và đứng. Điều này rất hữu ích trong việc giảm chi phí tính toán thể hiện khá rỏ trong hai công thức tương ứng sau:
Một vấn đề cần quan tâm nữa của Gaussian blur là nếu bạn sử dụng lần lượt nhiều Gaussian cho một ảnh thì kết quả cũng tương đương với khi bạn dùng một Gaussian lớn hơn có bán kính bằng căn bậc hai tổng bình phương các bán kính của các Gaussian đã dùng, ví dụ: Cũng vì mối quan hệ này mà thời gian tính toán sẽ không thể được tiết kiệm khi bạn chia nhỏ các Gaussian. Do đó khuyến cáo nên sử dụng Gaussian đơn trong tính toán nếu có thể.

Ngoài ra Gaussian blur cũng được sử dụng để giảm kích thước của hình ảnh. Khi tiến hành xử lý giảm tỉ lệ lấy mẩu tín hiệu cho ảnh (Downsampling) người ta thường áp dụng bộ lọc tần số cao (Low pass filter) trước khi tái lấy mẫu. Điều này là để chắc chắn những thông tin không mong muốn, tần số cao sẽ không xuất hiện trong hình đã được Downsampling... (loại bỏ răng cưa Aliasing).

Với những gì đã trình bày ở trên, chúng ta cũng đã nhắc tới bề mặt, ma trận Gaussian, đó chính là hiện thực hóa của hàm Gaussian trong thực hành. Hàm Gaussian được áp dụng vào ảnh thông qua phép Convolution giữa ma trận Gaussian và ma trận điểm ảnh 2 chiều. Dưới đây là một ví dụ của ma trận Gaussian được tạo ra bằng công thức Gaussian ở trên với σ = 0.84089642 và sau đó chuẩn hóa lại. Lưu ý quan sát và so sánh với các đặc tính nêu trên nhằm làm rỏ thêm các vấn đề đã được trình bày.

Binh Nguyen - Bioz
Gaussian Blur Reviewed by Bioz on 8:09:00 PM Rating: 5
All Rights Reserved by IEEV © 2009 - 2016
Powered By Blogger, Designed by Sweetheme

Contact Form

Name

Email *

Message *

Powered by Blogger.