OpenCV的使用起来非常人性化,是我见过为数不多的,体量大且在windows平台编译没警告的开源库,开发opencv的科学家是真的严谨。
这里OpenCV使用的版本是2.4.13.3,使用cmake生成visual stuido工程,编译即可。
OpenCV官方提供了丰富的示例,包括摄像头预览、人脸检测、人脸比对等。
使用opencv操作USB摄像头,用户只需要指定设备ID即可:
#include <opencv2/opencv.hpp> // 头文件
cv::VideoCapture m_cvCap; // 使用cv::VideoCapture类
int deviceID = 0; // 0 = 打开默认摄像头
int apiID = CV_CAP_ANY; // 0 = autodetect default API
m_cvCap.open(deviceID + apiID); // 打开摄像头
// 设置每帧图像的长宽
m_cvCap.set(CV_CAP_PROP_FRAME_WIDTH, 1024);
m_cvCap.set(CV_CAP_PROP_FRAME_HEIGHT, 576);
m_cvCap.release(); // 关闭摄像头
cv::Mat src; // opencv图像数据,可以转成QImage
if (!m_cvCap.read(src)) { // 从摄像头读取一帧图片
}