Chi tiết các chức năng 1 Lấy khuôn mặt từ file ảnh

Một phần của tài liệu Đồ án tốt nghiệp: Xử lý ảnh phát hiện khuôn mặt người (Trang 60)

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

3.1.4. Chi tiết các chức năng 1 Lấy khuôn mặt từ file ảnh

3.1.4.1. Lấy khuôn mặt từ file ảnh

Như đã nói ở trên, ta sẽ không mở 1 file ảnh cụ thể để lấy khuôn mặt, làm vậy sẽ rất lâu giống như Paint, vì mỗi lần lại bật hộp thoại chọn file. Nếu phải làm với nhiều file thì sẽ tốn nhiều thời gian. Vì vậy, ta sẽ chọn thư mục chứa tập các file ảnh cần làm việc, ta sẽ không phải mở file ảnh mỗi lần nữa.

Để chọn thư mục, ta nhấn vào nút “Chọn thư mục”. Khi đó, một hộp thoại sẽ bật lên cho ta chọn thư mục chứa ảnh cần làm việc.

Sau khi chọn thư mục rồi, nó sẽ hiện lên ảnh của file đầu tiên trong danh sách các file nằm trong thư mục. Tên file được hiện trên thanh tiêu đề của form.

Để di chuyển giữa các file ta sử dụng các nút “” và “-->” nằm dưới khung ảnh. Hoặc có thể sử dụng các phím mũi tên trái, phải trên bàn phím. File nào không phải là file ảnh thì sẽ hiện thị 1 ảnh thông báo lỗi:

Hình 3.3: Ảnh báo lỗi khi mở file không phải là file ảnh

Để lấy khuôn mặt, ta dùng chuột khoanh vùng khuôn mặt:

Hình 3.4: Minh họa khoanh vùng mặt

Sau khi khoanh vùng rồi, ta nhấn vào nút “Lưu khuôn mặt”, khuôn mặt đó sẽ được lưu vào file (đuôi .bmp, ảnh bitmap 24bpp) ở một thư mục xác định. Sau khi nhấn nút đó xong, khung xanh bao khuôn mặt sẽ biến mất, thể hiện việc lưu thành công. Thay vì nhấn nút lưu khuôn mặt, ta có thể nhấn phím Enter trên bàn phím để thực hiện chức năng tương đương. Về thư mục chứa file khuôn mặt, vị trí của nó như sau: khi chọn 1 thư mục ảnh để duyệt, ta sẽ tạo ra trong thư mục đó một thư mục

con có tên là CacKhuonMat. Các khuôn mặt sẽ được cất trong đây, mỗi khuôn mặt 1 file. Tên các file khuôn mặt được đặt theo quy cách: tên file ảnh chứa khuôn mặt + chỉ số của khuôn mặt trong file.

Trong tổng hợp histogram, để đảm bảo sự ngẫu nhiên, khách quan thì ta cần tránh sự trùng lặp ảnh. Trong 1 thư mục ảnh với số lượng ảnh lớn, ta có thể không duyệt hết được trong 1 ngày làm việc, mà phải thực hiện tiếp vào hôm sau. Sang ngày hôm sau, khi mở lại thư mục ảnh đó, rất khó có thể nhớ được file ảnh nào ta đã lấy khuôn mặt rồi, file ảnh nào chưa. Ta có thể nghĩ đến giải pháp như ghi lại tên các file đã duyệt rồi, nhưng như vậy danh sách có thể dài, ghi rất mệt và mỗi lần nghi ngờ 1 file nào đó, lại phải đối chiếu lại danh sách dài đó. Rõ ràng là không hợp lý. Hoặc ta có thể thực hiện cách đơn giản hơn là mỗi file duyệt xong, ta sẽ vào thư mục đó và thực hiện chuyển nó sang một thư mục khác. Và thư mục sẽ chỉ còn lại các file chưa duyệt. Ý tưởng là hợp lý nhưng thao tác “Cut” từng file một rất vất vả khi số lượng nhiều. Do đó, chương trình đưa thêm chức năng cất file ảnh, thực hiện chuyển file ảnh đã duyệt sang 1 thư mục khác, để tránh duyệt lại. Để thực hiện chức năng này, sau khi lấy hết các khuôn mặt trong ảnh rồi, chỉ việc nhấn nút “Cất ảnh” (hoặc nhấn phím Delete trên bàn phím), file ảnh đang làm việc sẽ tự động được chuyển đến 1 thư mục xác định. Nếu lưu thành công, form sẽ hiển thị ảnh khác trong danh sách.

Về thư mục chứa các file ảnh đã duyệt: khi chọn 1 thư mục ảnh, ta sẽ tạo ra trong thư mục đó 1 thư mục con có tên là “DaDuyet”. Đây chính là thư mục sẽ chứa các file đã duyệt sau khi nhấn nút “Cất ảnh”.

Một phần của tài liệu Đồ án tốt nghiệp: Xử lý ảnh phát hiện khuôn mặt người (Trang 60)