Matlab trong xử lý ảnh: Lọc nhiễu cho ảnh (p4)

Lu ROm

Administrator
Staff member
25 Tháng bảy 2014
481
119
43
31
One piece
vimach.net
4. Lọc Gaussian
- Bộ lọc Gaussian rất quan trọng đối với cả lý thuyết và thực tiễn. Chúng ta lọc hình ảnh bằng cách sử dụng một kernel dạng đối xứng xuyên tâm của hàm Gauss 2-D liên tục được xác định như sau:
upload_2016-6-29_9-19-31.png

- Xấp xỉ rời rạc để hàm liên tục này sử dụng hai tham số tự do là :
(1) các kích thước mong muốn của các kernel (như là một mặt nạ lọc N × N);
(2) giá trị độ lệch chuẩn của hàm Gaussian.
- Ứng dụng của bộ lọc Gaussian là làm mịn ảnh, nó khác với bộ lọc trung bình ở chổ là: thứ nhất,mức độ làm mịn được điều khiển bởi sự lựa chọn các tiêu chuẩn thông số độ lệch, chứ không phải bởi giá trị tuyệt đối của kích thước hạt nhân,thứ 2, hàm Gaussian có một thuộc tính khá đặc biệt, đó là biến đổi Fourier của nó là một hàm Gaussian, điều đó rất thuận tiện cho việc phân tích miền tần số của bộ lọc.
upload_2016-6-29_9-19-15.png

- Một hàm Gauss với giá trị lớn của s là một ví dụ về bộ lọc thông thấp, trong đó hàm lượng tần số không gian cao(ví dụ: các tính năng cạnh sắc nét) của hình ảnh được loại bỏ. Để hiểu được điều này đòi hỏi chúng ta có nền tảng tốt trong các biến đổi Fourier và phân tích trong miền tần số.
- VÍ DỤ MATLAB
Mã:
I=imread('eight.tif'); % Read in image
Isp = imnoise(I,'salt & pepper'); % add 3% (0.03) salt and pepper noise
Ig = imnoise(I,'gaussian',0.02); % add Gaussian noise (with 0.02 variance)
k = fspecial('gaussian', [5 5], 2);    % define Gaussian filter
I_g = imfilter(I,k); % apply to original image
Isp_g = imfilter(Isp,k); % apply to salt and pepper image
Ig_g = imfilter(Ig,k); % apply tp gaussian image
subplot(1,3,1), imshow(I_g); % Display result image
subplot(1,3,2), imshow(Isp_g); % Display result image
subplot(1,3,3), imshow(Ig_g); % Display result image
upload_2016-6-29_9-31-48.png

- Chúng ta tạo một kernel bộ lọc Gaussian 5x5, với giá trị độ lệch chuẩn là 2 bằng hàm fspecial().
5. Một số bộ lọc khác
- Bộ lọc trung bình hài ( Harmonic Mean filter):
upload_2016-6-29_9-39-8.png

+ Bộ lọc này làm việc tốt với nhiễu Salt, nhưng lại không hiệu quả với nhiễu Pepper.
- Bộ lọc điểm giửa ( Midpoint filter):
upload_2016-6-29_9-40-8.png

Bộ lọc tính điểm trung bình giữa giá trị Max và giá trị Min trong vùng bao quanh bởi S xy .
Bộ lọc làm việc tốt với những nhiễu có phân phối ngẫu nhiên như nhiễu Gaussian.

Down toàn bộ CODE MATLAB:
CODE MATLAB
HINH ẢNH
 
  • Like
Reactions: inocker