.1 Các bộ lọc đặc biệt

Một phần của tài liệu Các kĩ thuật nâng cao chất lượng và nén ảnh (Trang 60 - 64)

Loại Cấu trúc và tham số

kích thước r x c, mặc định là 3x3. Có thể thay [r c] bằng một giá trị đơn, khi đó bộ lọc là vuông.

‘disk’ fspecial (‘disk’, r). Bộ lọc trung bình trịn (nằm trong hình vng có kích thước 2r+1) với đường kính r. Đường kính mặc định là 5.

‘gaussian’ fspecial (‘gaussian’, [r c], sig). Bộ lọc thơng thấp Gauss kích thước r x c và độ lệch chuẩn sig (sig mang giá trị dương). Kích thước và độ lệch chuẩn mặc định là 3x3 và 0.5. Có thể thay [r c] bằng một giá trị đơn, khi đó bộ lọc là vuông.

‘laplacian’ fspecial (‘laplacian’, alpha). Bộ lọc Laplace kích thước 3x3 có hình dạng xác định bởi alpha (nằm trong khoảng [0, 1]). Giá trị mặc định của alpha là 0.5.

‘log’ fspecial (‘log’, [r c], sig). Bộ lọc LoG (Laplacian of Gaussian) kích thước r x c và độ lệch chuẩn sig (sig mang giá trị dương). Giá trị mặc định của kích thước bộ lọc và độ lệch chuẩn là 5x5 và 0.5. Có thể thay [r c] bằng một giá trị đơn, khi đó bộ lọc là vuông.

‘motion’ fspecial (‘motion’, len, theta). Cho bộ lọc mà khi nhân với 1 ảnh thì tính toán xấp xỉ chuyển động tuyến tính (của một camera đối với ảnh) của len pixel. Góc chuyển động là theta, được tính bằng độ, ngược chiều kim đồng hồ so với trục ngang. Giá trị mặc định của len và theta là 9 và 0.

‘prewitt’ fspecial (‘prewitt’). Cho mặt nạ Prewitt wv tính tốn gradient theo chiều dọc. Mặt nạ cho gradient theo chiều ngang thu được nhờ phép biến đổi: wh = wv’.

‘sobel’ fspecial (‘sobel’). Cho mặt nạ Sobel sv tính tốn gradient theo chiều dọc. Mặt nạ cho gradient theo chiều ngang thu được nhờ phép biến đổi: sh = sv’.

‘unsharp’ fspecial (‘unsharp’, alpha). Cho bộ lọc unsharp kích thước 3x3. Tham số alpha điều chỉnh độ sắc nét, nằm trong khoảng (0 1], giá trị mặc định là 0.2.

Ngoài các bộ lọc đặc biệt ở trên ta cũng có thể tự nhập các mặt nạ lọc (ma trận) bất kì. Trong đó ta thấy ảnh lọc sử dụng ma trận H có độ lọc mịn khá cao:

H = [1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9]; Kết quả mô phỏng biểu diễn trong hình 3.14.

Hình 3.14 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc sử dụng ma trận H – (d) Ảnh lọc sử dụng bộ lọc trung bình

Thực ra, với các bộ lọc như trên, các ảnh lọc thu được có khi rất mịn nhưng lại không rõ nét. Để khắc phục tình trạng này, ta có thể sử dụng linh hoạt bộ lọc. Ví dụ, ta sử dụng đoạn mã sau đây:

f = imread (‘moon.tif’);

w4 = fspecial (‘laplacian’, 0) % hoặc w4 = [0 1 0; 1 -4 1; 0 1 0]]; w8 = [1 1 1; 1 -8 1; 1 1 1]; f = im2double (f); g4 = f – imfilter (f, w4, ‘replicate’); g8 = f – imfilter (f, w8, ‘replicate’); >> imshow (f); >> figure, imshow (g4); >> figure, imshow (g8);

Hình 3.15 (a) Ảnh gốc – (b) Ảnh thu được nhờ bộ lọc Laplace có giá trị -4 ở chính giữa – (c) Ảnh thu được nhờ bộ lọc Laplace có giá trị -8 ở chính giữa

Ảnh thu được ở hình cuối cùng mịn hơn rất nhiều so với ảnh gớc, hơn nữa, nó còn khá nét.

• Lọc khơng gian phi tuyến

Một công cụ thông dụng để tạo ra các bộ lọc không gian phi tuyến trong IPT (hộp công cụ xử lí ảnh) là hàm ordfilt2, tạo ra các bộ lọc thứ tự cố định (cũng được gọi là các bộ lọc thứ tự). Những bộ lọc không gian phi tuyến này dựa vào thứ tự các pixel

chứa trong vùng lân cận và thay thế giá trị pixel trung tâm của vùng lân cận bởi giá trị xác định bằng kết quả xếp thứ tự. Cấu trúc của lệnh ordfilt2 như sau:

g = ordfilt2 (f, order, domain)

Hàm này tạo ra ảnh đầu ra g bằng cách thay thế mỗi phần tử trong f bằng phần tử thứ order trong tập hợp các vùng lân cận được mô tả bởi các thành phần khác 0 trong

domain. Ở đây, domain là ma trận m x n chỉ gồm hai sớ 0 và 1, mơ tả các vị trí pixel

trong vùng lân cận sẽ được sử dụng trong việc tính tốn. Có thể hiểu domain có chức

năng như một mặt nạ. Các pixel trong vùng lân cận tương ứng với 0 trong ma trận

domain không được sử dụng trong việc tính tốn.

Một phần của tài liệu Các kĩ thuật nâng cao chất lượng và nén ảnh (Trang 60 - 64)