Nâng cao chất lượng ảnh
194
Ta thấy chất lượng ảnh lọc rất tốt so với ảnh nhiễu. Kết quả ở hình c (chèn thêm các giá trị 0)
với hình d (chèn bằng phương pháp
‘symmetric’
) là gần giống nhau, chỉ khác ở chỗ hình d
không bị xuất hiện các chấm đen ở biên ảnh.
12.3.3. LOÏC THÍCH NGHI
Hàm wiener2 cho phép thực hiện bộ lọc Wiener đối với các ảnh số. Đây là một loại bộ lọc
tuyến tính nhưng có tính thích nghi tuỳ theo các giá trị variance của từng pixel ảnh. Đối với
các pixel có variance lớn, hàm này chỉ làm phẳng ảnh ở mức độ thấp nhưng với các pixel có
variance nhỏ, nó sẽ có xu hướng trải rộng các giá trị mức xám hơn. Chất lượng của bộ lọc này
tốt hơn các bộ lọc tuyến tính thông thường, vì nó vẫn bảo tồn được những chi tiết tần số cao
của ảnh, vẫn giữ được những đường nét biên của ảnh. Tuy nhiên khối lượng tính toán đòi hỏi
cao hơn d0 đó thời gian thực thi hàm này sẽ dài hơn. Bộ lọc Wiener thích hợp với các loại
nhiễu có công suất bằng phẳng, chẳng hạn nhiễu Gauss.
Ví dụ 12-12. Sử dụng bộ lọc Wiener để loại nhiễu Gauss:
RGB = imread('saturn.png');
I = rgb2gray(RGB);
J = imnoise(I,'gaussian',0,0.05);
K = wiener2(J,[5 5]);
imshow(J)
figure, imshow(K)
a) Ảnh nhiễu Gauss
b) Ảnh sau khi lọc Wiener
Hình 12.16.
#
Bài tập 12-1.
Dùng hàm imadjust để điều chỉnh độ tương phản cho các ảnh có trong máy tính của bạn. Có
thể sử dụng hàm imhist để xem histogram của ảnh.
#
Bài tập 12-2.
Viết hàm MATLAB thực hiện các phép biến đổi mức xám sau đây:
a.
1/ 2
( )
.
s T r
A r
=
=
. Chọn A để v
∈ [0, L-1].