KỸ THUẬT BẮT GIỮ HèNH ẢNH QUA CAMERA

Một phần của tài liệu Tìm hiểu bài toán phát hiện đối tượng chuyển động (Trang 25 - 27)

Mụi trường Windows đó cung cấp cho ta hai cỏch lập trỡnh với video: cỏch thứ nhất dựng VFW (Video For Windows) API. Cỏch thứ hai dựng lớp AVICap của Windows. VFW API hỗ trợ cho quỏ trỡnh bắt giữ (capture) video từ webcam. AVICap cung cấp cỏch tiếp cận dựa trờn thụng điệp đơn giản, cho phộp chỳng ta truy cập, điều khiển luồng dữ liệu audio, video. Một ứng dụng xõy dựng trờn AVICap cú một số khả năng như:

- Thu dữ liệu audio, video vào một file cú đuụi mở rộng là avi - Kết nối và hủy kết nối với cỏc thiết bị vào trong thời gian thực thi

- Xem trực tiếp dữ liệu video từ thiết bị đầu vào theo phương phỏp preview hoặc overlay

- Chỉ định tốc độ thu dữ liệu

- Hiển thị cỏc dialogbox cho phộp người sử dụng điều khiển dữ liệu video đầu vào

- Sao chộp cỏc hỡnh ảnh và palette lờn clipboard - Thu một ảnh đơn và lưu dưới dạng DIB

AVICap hỗ trợ cỏc khả năng thu dữ liệu dưới dạng một ảnh tĩnh đơn hay theo dạng stream với nhiều frame ảnh. Cỏc frame ảnh cú thể cỏch nhau một khoảng thời gian xỏc định hay tựy ý. Việc thu cỏc stream ảnh cũng cú thể khụng cần lưu trờn đĩa mà cú thể được sử dụng trực tiếp từ buffer trờn bộ nhớ, điều này cho phộp lập trỡnh viờn mềm dẻo trong việ xử lý trong cỏc ứng dụng khỏc nhau. Ngoài ra lớp AVICap cho phộp ứng dụng chỉ định cỏc hàm callback được sử dụng trong quỏ trỡnh bắt giữ

- Status Callback: được gọi khi cú sự thay đổi trạng thỏi của quỏ trỡnh thu video - Error Callback: được gọi khi cú lỗi xảy ra trong quỏ trỡnh thu video

- Frame Callback: được gọi trước khi một frame ảnh được preview

- Video Stream Callback: được gọi khi thu được cỏc frame ảnh trong quỏ trỡnh streaming video

Khi xõy dựng một ứng dụng video dựng lớp AVICap, cỏc ứng dụng thường được thực hiện theo cỏc trỡnh tự sau:

- Tạo một capture window - Kết nối vào một capture driver

- Liệt kờ cỏc capture driver đó cài đặt trong hệ thống - Lấy thụng tin về khả năng của một capture driver - Lấy thụng tin trạng thỏi của một capture window - Trỡnh bày dialogbox để thiết lập cỏc thụng số video - Lấy cũng như thiết lập cỏc thụng số của video format - Cho phộp preview video

- Cho phộp overlay video - Đặt tờn cho capture file

- Cấp phỏt trước vựng nhớ trờn đĩa cho capture file - Địn dạng audio capture

- Thay đổi cỏc thụng số video capture - Thu dữ liệu

- Thờm cỏc chuỗi thụng tin vào capture file - Thờm cỏc hàm callback vào ứng dụng

Tiếp theo, chỳng ta sẽ tỡm hiểu một số hàm AVICap Windows thường dựng: - Hàm tạo capture window

hWndC = capCreateCaptureWindow(

(LPSTR) “My Capture Window”, // tờn cửa sổ WS_CHILD | WS_VISIBLE, // kiểu cửa sổ 0, 0, 160, 120, // vị trớ cửa sổ

(HWND) hwndParent, (int) nID );

- Kết nối vào capture driver

fOK = capDriverConnect(hWndC,0); - Hủy bỏ kết nối với capture driver

capDriverDisconnect(hWndC); - Kớch hoạt chế độ Preview video:

Đầu tiờn chỳng ta cần phải đặt tốc độ bắt giữ hỡnh ảnh, sau đú kớch hoạt chế độ Preview video. Thớ dụ dưới đõy thiết lập tốc độ hiển thị frame ở chế độ preview là 66 miliseconds mỗi frame(tức là khoảng 15 fps) và thiết lập chế độ preview cho capture window

CapPreviewRate(hWndC,66); CapPreview(hWndC, TRUE); CapPreview(hWndC, FALSE);

Một phần của tài liệu Tìm hiểu bài toán phát hiện đối tượng chuyển động (Trang 25 - 27)

Tải bản đầy đủ (PDF)

(50 trang)