Để sử dụng chương trình mô phỏng các phương pháp biến đổi ảnh xám, ta chỉ cần nhập ảnh vào bằng cách ấn nút “Mở file ảnh”, ta có thể lựa chọn bất kì file ảnh nào có sẵn trong file matlab đang chạy chương trình. Sau đó, ảnh vừa chọn sẽ được nhập vào axes, ta chọn “Biến đổi mức xám nhờ hàm imadjust” trong “Lựa chọn phương pháp biến đổi:” và nhập các giá trị tham số: dải mức xám đầu vào, đầu ra (nằm trong khoảng từ 0 đến 1) và gamma. Rồi cuối cùng ta ấn nút “Xử lí”. Với dải mức xám đầu vào từ 0 đến 0.5, đầu ra từ 0.2 đến 1 và tham số gamma = 0.3, ta có ảnh biến đổi mức xám sử dụng hàm imadjust như hình 3.2. Nếu muốn biết thêm thông tin về phương pháp biến đổi mức xám sử dụng hàm imadjust cũng như các phương pháp khác trong biến đổi ảnh xám, ta có thể lựa chọn xem trong phần “Thông tin”.
Cách sử dụng của các chương trình mô phỏng trong đồ án đều tương tự như vậy. Hàm imadjust được sử dụng trong mô phỏng này là công cụ xử lí ảnh IPT (Image Processing Toolbox) cơ bản cho các biến đổi mức xám của các ảnh xám. Nó có cú pháp:
Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng
g = imadjust(f, [low_in high_in], [low_out high_out], gamma)
Hàm này ánh xạ các giá trị mức xám trong ảnh f đến giá trị mới g, (các giá trị giữa low_in và high_in ánh xạ đến giá trị low_out và high_out).
Hình 3.3 Đồ thị của các giá trị trong hàm imadjust
Các giá trị dưới low_in và trên high_in đều bị cắt đi, các giá trị dưới low_in ánh xạ tới low_out và các giá trị trên high_in ánh xạ tới high_out. Ảnh vào và ảnh ra có thể là của lớp uint8, uint16 hoặc double. Tất cả ảnh vào dù là thuộc lớp nào thì khi xử lí bằng hàm imadjust đều được xác định giá trị từ 0 đến 1. Nếu f thuộc lớp uint8 thì các giá trị thực tế sử dụng là các giá trị đã cho cho nhân với 255; nếu f thuộc lớp uint16 thì các giá trị đã cho nhân với 65535. Nếu [low_in high_in] hoặc [low_out high_out] là ma trận rỗng ([ ]), ta có các giá trị mặc định [0 1]. Nếu high_out nhỏ hơn low_out thì mức xám đầu ra đảo ngược lại.
Tham số gamma xác định dạng đường cong để ánh xạ các giá trị mức xám của f để tạo g. Nói dễ hiểu hơn, gamma xác định độ tương phản của ảnh ra. Nếu gamma nhỏ hơn 1 thì ánh xạ có trọng số hướng về các giá trị ra cao hơn (ảnh ra có độ tương phản thấp hơn). Nếu gamma lớn hơn 1 thì ánh xạ có trọng số hướng về các giá trị ra thấp hơn (ảnh ra có độ tương phản cao hơn). Nếu hàm là g = imadjust(f, [low_in high_in], [low_out high_out]) thì gamma mặc định là 1.
b. Biến đổi âm bản
Ảnh âm bản có thể thu được nhờ hàm imadjust: g = imadjust(f, [0 1], [1 0]);
Hình 3.4 (a) Ảnh gốc – (b) Ảnh âm bản
c. Biến đổi log
Các biến đổi log được thực hiện bằng cách sử dụng công thức: g = c*log(1 + double(f)) (3.1) Hình 3.5 là kết quả mô phỏng biến đổi hàm log với c = 5:
Hình 3.5 (a) Ảnh gốc – (b) Ảnh biến đổi hàm log
d. Biến đổi hàm mũ
Các biến đổi hàm mũ được thực hiện bằng cách sử dụng công thức: g = c*(f.^gamma) (3.2) Mô phỏng Matlab với c = 5 và gamma = 2:
Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng
Hình 3.6 (a) Ảnh gốc – (b) Ảnh biến đổi hàm mũ