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

Lu ROm

Administrator
Staff member
25 Tháng bảy 2014
481
119
43
31
One piece
vimach.net
3. Các loại bộ lọc ảnh.
a. Mean filtering( bộ lọc trung bình)

- Bộ lọc trung bình là thay thế mỗi giá trị điểm ảnh trong một hình ảnh với giá trị trung bình của giá trị các điểm ảnh lân cận, trong đó có điểm ảnh đó. Đây là một bộ lọc tuyến tính đơn giản với tác dụng làm mịn ảnh, khử nhiễu,.. Ví dụ về bộ lọc trung bình với kernel 3x3:
upload_2016-6-28_10-1-34.png

- Bộ lọc trung bình hiệu quả nhất trong việc khử nhiễu Gaussian nhưng đổi lại là sự mất các chi tiết hình ảnh cao tần. Kích thước kernel lớn hơn sẽ có hiệu quả lọc lơn hơn nhưng làm giảm chất lượng hình ảnh nên lọc này không hiệu quả trong việc khử nhiễu ‘salt and pepper’ . Một biến thể phổ biến khác của bộ lọc này là tạo một ngưỡng và chỉ thay thế các giá trị điểm ảnh hiện tại với giá trị trung bình của vùng lân cận nếu độ lớn của giá trị trung bình nằm nằm dưới ngưỡng này.
** CODE 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 = ones(3,3) / 9;    % define mean filter
I_m = imfilter(I,k); % apply to original image
Isp_m = imfilter(Isp,k); % apply to salt and pepper image
Ig_m = imfilter(Ig,k); % apply tp gaussian image
subplot(1,3,1), imshow(I_m); % Display result image
subplot(1,3,2), imshow(Isp_m); % Display result image
subplot(1,3,3), imshow(Ig_m); % Display result image
upload_2016-6-28_10-53-37.png


b. Median filtering ( Lọc trung vị)
- Bộ lọc thường được sử dụng trong xử lý ảnh. Lọc Median vượt qua những hạn chế của bộ lọc Mean. Bộ lọc này thay thế điểm ảnh đích bằng giá trị trung vị của các điểm ảnh lân cận và chính điểm ảnh đó. Bộ lọc Median sẽ tìm giá trị trung vị trong tất cả các điểm anh và thay vào điểm ảnh trung tâm. Các bộ lọc trung vị là cấp trên bộ lọc trung bình ở chỗ nó giữ độ nét tần số cao trong khi vẫn loại bỏ nhiễu. Ví dụ:
upload_2016-6-28_10-42-46.png

** Code 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)
I_m = medfilt2(I,[3 3]); % apply to original image
Isp_m = medfilt2(Isp,[3 3]); % apply to salt and pepper image
Ig_m =medfilt2(Ig,[3 3]); % apply tp gaussian image
subplot(1,3,1), imshow(I_m); % Display result image
title('loc anh goc');
subplot(1,3,2), imshow(Isp_m); % Display result image
title('loc salt and pepper');
subplot(1,3,3), imshow(Ig_m); % Display result image
title('loc gaussian');
upload_2016-6-28_10-51-33.png

c. Rank filtering
- Các bộ lọc trung vị chỉ là một trường hợp đặc biệt của bộ lọc Rank. Bộ lọc Rank là một bộ lọc phi tuyến tính với các bước thực hiện như sau:
(1) Xác định các vùng lân cận của điểm ảnh mục tiêu (N × N).
(2) Sắp xếp chúng theo thứ tự tăng dần (đầu tiên là giá trị thấp nhất, (N × N), giá trị cao nhất).
(3) Chọn bậc của các bộ lọc (từ 1 đến N).
(4) Thiết lập giá trị lọc bằng với giá trị của điểm ảnh đã chọn.
- Tùy vào bậc bộ lọc mà chúng ta đã chọn có giá trị tối đa hay tối thiểu trong vùng lân cận được gọi là các bộ lọc tối đa hay tối thiểu.
** CODE 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)
I_m = ordfilt2(I,25,ones(5,5)); % apply to original image
Isp_m = ordfilt2(Isp,25,ones(5,5)); % apply to salt and pepper image
Ig_m =ordfilt2(Ig,25,ones(5,5)); % apply tp gaussian image
subplot(1,3,1), imshow(I_m); % Display result image
title('loc anh goc');
subplot(1,3,2), imshow(Isp_m); % Display result image
title('loc salt and pepper');
subplot(1,3,3), imshow(Ig_m); % Display result image
title('loc gaussian');
upload_2016-6-28_11-11-20.png


DOWN TOÀN BỘ CODE VÀ ẢNH
- CODE MATLAB
- hÌNH ẢNH
 
Bài viết có rất chi tiết và có nhiều thông tin hữu ích. Mình nghĩ là nó sẽ rất có ích cho người đang cần nó. Tặng bác 1 like, mong rằng bác sẽ có nhiều chia sẻ hữu ích hơn tới cộng đồng!