Nâng cao chất lượng ảnh
191
H = fspecial('laplacian',alpha)
Bộ lọc Laplacian kích thước 3x3. alpha là thông số
dàngnăm trong khoảng [0 1], mặc định là 0.2
H = fspecial('log',N,sigma)
Đối xứng quay của bộ lọc Gaussian. Giá trị mặc định: N =
5, sigma = 0.5
H = fspecial('motion',len,theta)
Bộ lọc xấp xỉ chuyển động tuyến tính của camera khi di
chuyển len pixels theo một góc theta. Giá trị mặc định là
len = 9 và theta = 0
H = fspecial('prewitt')
Bộ lọc Prewitt: H = [1 1 1;0 0 0;-1 -1 -1]
H = fspecial('sobel')
Bộ lọc Sobel: H = [1 2 1;0 0 0;-1 -2 -1]
H = fspecial('unsharp',alpha)
Bộ lọc tăng độ tương phản. alpha là thông số tương tự như
bộ lọc Laplacian
Ví dụ 12-9. Sử dụng hàm imfilter với cửa sổ lọc định nghĩa trước bởi hàm fspecial:
originalRGB = imread('peppers.png');
h = fspecial('motion',30,45);
filteredRGB = imfilter(originalRGB,h);
imshow(originalRGB)
figure,imshow(filteredRGB)
a) Ảnh gốc
b) Ảnh lọc xấp xỉ chuyển động của camera
Hình 12.14.
Lưu ý:
Hàm imfilter có thể sử dụng với các ảnh nhiều chiều, chẳng hạn ảnh RGB.
12.3.2. LOÏC PHI TUYEÁN
Phương pháp lọc phi tuyến cũng dựa trên nguyên tắc cửa sổ lọc giống như phương pháp lọc
tuyến tính, tuy nhiên, thay vì lấy tổng có trọng số của các pixel lân cận thì phương pháp lọc
phi tuyến sẽ thực hiện một phép toán phi tuyến trên các điểm lân cận này, ví dụ phép lấy cực
đại của các mức xám lân cận là một phép toán phi tuyến.
Quá trình lọc phi tuyến tổng quát được thực hiện bởi hàm nlfilter và colfilt. Hàm nlfilter thực
hiện một cách trực tiếp trên cả hai chiều, trong khi hàm colfilt thực hiện lọc theo từng cột.
Hàm colfilt đòi hỏi nhiều bộ nhớ hơn nhưng tốc độ thực thi nhanh hơn hàm nlfilt.
>> g = nlfilter(f,[m n],@fun,parameters)
>> g = colfilt(f,[m n],'sliding',@fun,parameters)