Xử lý ảnh: Thuật toán Lọc trung vị (median filter) bằng Matlab

Từ khóa




Trong Xử lý ảnh, khi gặp trường hợp ảnh bị nhiễu muối tiêu (salt and pepper noise, impulse noise, binary noise) người ta sẽ sử dụng Bộ Lọc Trung Vị (Median Filter) để khử nhiễu vì bộ lọc này khử nhiễu muối tiêu hiệu quả hơn tất cả các bộ lọc khác.

Dưới đây là 1 tấm ảnh bị nhiễu muối tiêu:



Với công cụ xử lý ảnh trong Matlab, người ta sử dụng hàm Medfilt2 để khử nhiễu. Ở bài viết này, thay vì gọi hàm Medfilt2, tôi sẽ tự viết 1 đoạn mã lệnh để khử nhiễu muối tiêu bằng bộ lọc trung vị kích cỡ 3x3. Đoạn mã như sau:

ig=rgb2gray(imread('salt_pepper.jpg'));
s=size(ig);
for i=2:s(1)-1
    for j=2:s(2)-1
      a=[ig(i,j) ig(i,j-1) ig(i,j+1) ig(i-1,j) ig(i-1,j-1) ig(i-1,j+1)];
      a=sort([a ig(i+1,j) ig(i+1,j-1) ig(i+1,j+1)]);
      ikq(i,j)=uint8(a(5));
    end;
end;

salt_pepper.jpg là tên tấm ảnh bị nhiễu muối tiêu ở trên.

Kết quả lọc được lưu vào biến ikq, dùng hàm imshow(ikq), ta có kết quả như sau:



Bài liên quan

Bài liên quan