Nâng cao chất lượng ảnh
186
Ngoài hàm histeq, ta cũng có thể thực hiện cân bằng histogram bằng hàm adapthisteq. Quá
trình này gọi là cân bằng histogram thích nghi với độ tương phản bị giới hạn (CLAHE –
Contrast-Limited Adaptive Histogram Equalization). Hàm histeq tác động lên toàn bộ ảnh bởi
một hàm biến đổi mức xám, còn hàm adapthisteq sẽ phân chia ảnh thành các vùng nhỏ (gọi
là tile) và tác động riêng trên mỗi vùng, sau đó sẽ kết hợp giữa các tile lân cận theo phương
pháp nội suy song tuyến tính để loại bỏ các chi tiết lạ xuất hiện ở biên giới các tile.
>> J = adapthisteq(I,param1,val1,param2,val2...)
Nhập liệu cho hàm adapthisteq bao gồm ảnh I và giá trị của các thông số liên quan (nếu cần).
Các thông số này bao gồm:
‘NumTiles’
(mặc định 8x8, là số tile trên hàng ngang và trên
một cột dọc), ‘ClipLimit’ (giới hạn độ tương phản, mặc định 0.01),
‘Nbins’
(số bins, mặc
định 256),
‘Range’
(chuỗi xác định các giới hạn mức xám của ảnh, mặc định:
’full’
),
‘Distribution’
(chuỗi xác định kiểu phân bố, gồm ;uniform’,
‘rayleigh’
,.. mặc định
‘uniform’
),
‘Alpha’
(hằng số cho phân bố rayleigh hoặc phân bố hàm mũ, mặc định 0.4).
12.3. LOÏC AÛNH
Nhiễu là một vấn đề thường gặp đối với các ảnh số. Nhiễu có thể hình thành do nhiều nguyên
nhân nkac nhau. Ví dụ nếu ảnh được scan từ một ảnh chụp sử dụng film thì nhiễu có thể phát
sinh bởi các hạt nhỏ trên film hoặc từ thiết bị scan, nếu ảnh được chụp từ các máy chụp ảnh số
thì cơ chế thu thập dữ liệu (chẳng hạn bộ phát hiện CCD) sẽ tạo ra nhiễu. Ngoài ra khi truyền
ảnh trong các hệ thống viễn thông, ảnh cũng có thể bị nhiễu do kênh truyền gây ra. Để khắc
phục ảnh hưởng của nhiễu, ta phải sử dụng các phương pháp lọc ảnh khác nhau. Mỗi phương
pháp thích hợp với một số loại nhiễu nhất định.
Để mô phỏng ảnh hưởng của nhiễu lên ảnh, MATLAB cung cấp hàm imnoise cho phép tạo ra
các loại nhiễu khác nhau và cộng vào ảnh gốc. Các cú pháp của hàm imnoise được giới thiệu
ở bảng 12-1.
Bảng 12-1.
Các cú pháp của hàm imnoise
Cú pháp
Mô tả
J = imnoise(I,'gaussian',m,v)
Tạo nhiễu trắng Gauss có trung bình bằng m và variance
ằ
J = imnoise(I,'localvar',v)
Tạo nhiễu trắng Gauss có trung bình bằng 0 và các variance
khác nhau cho từng pixel. v là vector variance có kích thước
bằng số pixel của I
J = imnoise(I,'localvar',level,v)
Như trên nhưng với vector v được xác định theo một hàm
của các mức xám. level là vector gồm các giá trị mức xám
thuộc [0,1] và v là vector variance tương ứng .
J = imnoise(I,'poisson')
Tạo nhiễu Poisson
J = imnoise(I,'salt & pepper',D)
Tạo nhiễu “salt and pepper” với mật độ là D (mặc định 0.05)
J = imnoise(I,'speckle',V)
Tạo nhiễu nhân: J = I + n*I với n là nhiễu phân bố đều
với trung bình bằng 0 và variance bằng v (mặc định 0.04)
Phương pháp lọc ảnh bao gồm các bước như sau: (1) xác định một điểm trung tâm (x,y); (2)
thực hiện các phép toán chỉ liên quan đến một số điểm lân cận với (x,y); (3) kết quả trả về
chính là đáp ứng của quá trình lọc tại điểm (x,y); (4) lặp lại quá trình lọc với các điểm (x,y)
khác.
Nếu phép toán thực hiện trên các điểm lân cận là tuyến tính thì ta có quá trình lọc tuyến tính
(còn gọi là phép chập không gian), ngược lại, ta có quá trình lọc phi tuyến.