Nâng cao chất lượng ảnh
193
>> g = ordfilt2(f, 1, ones(m, n))
Padopt
cho biết phương pháp chèn các điểm phụ là
‘zero’
hay
‘symmetric’.
Hàm medfilt2 là trường hợp đặc biệt của hàm ordfilt2, trong đó phần tử được chọn là phần tử
xếp hạng chính giữa và
domain
là một cửa sổ kích thước
m
x
n
. Với hàm này,
padopt
cũng
có thể là
‘indexed’
, khi đó các pixel thêm vào sẽ là 1 nếu ảnh thuộc kiểu
double
và là 0
trong các trường hợp khác.
Hàm medfilt2 thường được sử dụng trong những trường hợp có những giá trị pixel lớn hơn
hoặc nhỏ hơn hẳn các pixel khác (chẳng hạn trong trường hợp có nhiễu “salt and peper”). Khi
đó nếu dùng bộ lọc trung bình thì đáp ứng của bộ lọc có thể bị kéo lên (hoặc giảm xuống)
theo giá trị nhiễu nói trên.
Ví dụ 12-11. Sử dụng bộ lọc median để loại nhiễu “salt and peper”:
f=imread(‘circuit1.tif’); %
Ảnh gốc
imshow(f)
fn = imnoise(f, 'salt & pepper', 0.2);
% Ảnh nhiễu salt and peper
figure,imshow(g)
gm
=
medfilt2(fn); %
Lọc median với zero padding
figure,imshow(gm)
gms = medfilt2(fn, 'symmetric');
figure,imshow(gms) %
Lọc median với ‘symmetric’ padding
a) Ảnh gốc
b) Ảnh nhiễu
c) Lọc median với zero padding d) Lọc median với ‘symmetric’ padding
Hình 12.15.