Công cụ tổng hợp histogram

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG PHÁT HIỆN MẶT NGƯỜI DỰA TRÊN MÀU DA (Trang 62 - 66)

CHƯƠNG 3: CÁC CÔNG CỤ ĐƯỢC XÂY DỰNG

3.2. Công cụ tổng hợp histogram

3.2.1. Mục đích

Công cụ này được xây dựng để tổng hợp và chuẩn hóa histogram từ một tập ảnh màu da được chuẩn bị trước, để phục vụ cho công tác phát hiện màu da sau này.

3.2.2. Các chức năng

Công cụ này có chức năng giống như một bộ soạn thảo histogram. Nó cho phép:

• Tạo 1 histogram mới (rỗng).

• Mở 1 histogram đã tồn tại (đã được tổng hợp một phần từ lần trước, nay mở ra để tổng hợp tiếp).

• Lưu và lưu mới histogram.

• Chuẩn hóa histogram.

3.2.3. Giao diện

Giao diện của chương trình như sau: Giao diện khi mới chạy chương trình:

Hình 3.6: Giao diện công cụ tổng hợp histogram khi khởi động chương trình

Giao diện khi đang soạn thảo 1 histogram:

Hình 3.7: Giao diện công cụ tổng hợp histogram khi đang soạn thảo 1 histogram

Phía bên phải là dãy các button thực hiện các chức năng. Cửa sổ trắng ở giữa là list box dùng hiển thị danh sách các file ảnh đã duyệt qua trong quá trình tổng hợp histogram. Dòng text bên dưới cửa sổ cho biết histogram đang xây dựng đã có bao

nhiêu điểm ảnh rồi (đó là tổng số điểm của tất cả các file ảnh đã duyệt qua khi tổng hợp histogram).

3.2.4. Chi tiết các chức năng

Để tạo mới 1 histogram, nhấn vào nút “Tạo mới”. Khi đó, chương trình sẽ bật hộp thoại Save file để chọn nơi chứa và đặt tên file chứa histogram. File này có đuôi là

hir. Về bản chất, file này chỉ là 1 file text. Dòng đầu tiên trong file text là tổng số điểm ảnh đã duyệt qua. Sau dòng này là một ma trận lưu kết quả tổng hợp histogram. Cuối cùng là các dòng lưu đường dẫn đến các nơi chứa các file ảnh đã duyệt rồi. Nếu ta đã sẵn có 1 file histogram rồi, bây giờ muốn mở ra để tổng hợp tiếp thì nhấn vào nút “Mở”. Chương trình sẽ mở 1 hộp thoại cho ta chọn file đó.

Để thêm các ảnh vào histogram (duyệt qua các ảnh khác), ta nhấn nút “Thêm vào”. Chương trình sẽ bật ra 1 hộp thoại cho ta chọn thư mục chứa các file ảnh. Tại sao lại là thư mục chứa ảnh mà không phải là các file ảnh riêng rẽ? Vì nếu cứ mở từng file ảnh riêng rẽ một sẽ rất mất thời gian vì số lượng ảnh của ta nhiều (trên 200 file). Đồng thời ở bước trước (lấy các khuôn mặt) ta đã đặt tập trung các khuôn mặt vào 1 thư mục rồi.

Sau khi chọn xong, chương trình sẽ thực hiện duyệt qua các file ảnh trong thư mục để thêm vào histogram. Mỗi file được duyệt sẽ được hiện lên trên form, trong list box. Nếu file được duyệt không phải là file ảnh sẽ có dòng thông báo lỗi ngay bên dưới dòng hiện tên file đó trong list box.

Hình 3.8: Giao diện khi thêm ảnh vào histogram

Như ta đã biết trong file chứa histogram có lưu cả các thư mục đã duyệt rồi. Bởi vì như đã nói, khi tổng hợp histogram cần tránh trùng lặp file. Do đó, ta lưu lại đường dẫn đến các thư mục đã duyệt để hạn chế sự trùng lặp này. Khi chọn 1 thư mục, nếu nó trùng với 1 trong các thư mục đã duyệt rồi, chương trình sẽ hiện thị thông báo hỏi ý kiến xem có muốn tiếp tục tổng hợp không? (phải hỏi vì có thể vẫn là thư mục đó, nhưng nội dung có thể đã khác rồi). Nếu câu trả lời là KHÔNG thì sẽ bỏ qua, không

làm gì cả. Nếu là thì sẽ tiến hành duyệt qua các file trong thư mục để đưa vào histogram.

Dấu * ở trên list box (góc trái), cho ta biết rằng histogram đang mở chưa được lưu. Để lưu histogram đang mở, ta nhấn vào nút “Lưu”. Sau khi lưu xong, dấu * sẽ mất đi. Quá trình lưu là quá trình ghi lại histogram từ bộ nhớ vào file.

Tổng hợp histogram là thao tác rất tốn kém và không phải chất lượng tốt dần lên, vì nó còn phụ thuộc vào ảnh mẫu. Do đó, histogram hiện tại tốt cho phát hiện màu da, nhưng sau khi tổng hợp thêm một số ảnh màu da nữa, histogram thu được có thể lại phát hiện màu da kém đi. Điều này là có thể nếu các ảnh được tổng hợp tiếp là không tốt. Vì thế để an toàn ta có thể phải lưu bản histogram cũ ra 1 file khác rồi sau đó mới thêm các ảnh mới vào. Để hỗ trợ điều này, chương trình có đưa thêm chức năng “Lưu mới” để lưu histogram đang tổng hợp thành 1 file khác, không xóa mất kết quả tổng hợp trước đó.

Histogram được sử dụng trong phát hiện màu da không phải là histogram với các cột là các số nguyên, mà là histogram được chuẩn hóa, tức là chia số điểm trong mỗi cột cho tổng số điểm ảnh đã duyệt. Khi đó, các cột có giá trị là các số thực có giá trị trong dải [0; 1). Để thực hiện chuẩn hóa histogram, nhấn vào nút “Chuẩn hóa” trên form. Chương trình sẽ tiến hành chuẩn hóa histogram hiện hành. Histogram được chuẩn hóa sẽ được lưu trong 1 file có đuôi là hin. Vị trí và tên của file ta sẽ được yêu cầu nhập vào sau khi nhấn “Chuẩn hóa”. Sau khi chuẩn hóa xong, sẽ hiện hộp thoại thông báo thành công hoặc thất bại.

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG PHÁT HIỆN MẶT NGƯỜI DỰA TRÊN MÀU DA (Trang 62 - 66)