学习OpenCV 3(中文版)》 —从摄像头中读取

网友投稿 630 2022-05-28

从摄像头中读取

“视觉”在计算机世界中可以表示很多东西,在一些情况下,我们分析从任意地方加载的静止的图像。在另一些情况下,我们会分析从硬盘中读取的视频。然而在更多的情况下,我们想要和从某种摄像头中读取的实时数据流进行交互。

OpenCV——或更准确地说,OpenCV中的HighGUI模块——为我们提供了一个简单的方式来驾驭这种情况。这个方法很接近于我们使用cv::VideoCapture从硬盘读取视频的方式,事实上,cv::VideoCapture对磁盘上的文件和摄像头是有一致接口的。对于前者来说,需要给它一个指示读取文件名的路径,对于后者来说,需要给它一个相机ID号(如果只有一个摄像头连接,这个ID号通常为0),ID的默认值是-1,这意味着“随意选择一个”,当然,当只有一个摄像头可以选择的时候这能够很好地工作(参考第8章,查阅详细解释),示例2-10展示了从文件或者摄像头中读取视频。

示例2-10:同一个对象可以读取视频文件,也可以连接摄像头

#include #include int main( int argc, char** argv ) {   cv::namedWindow( "Example2_10", cv::WINDOW_AUTOSIZE );

cv::VideoCapture cap;   if (argc==1) {     cap.open(0);           // open the first camera

《学习OpenCV 3(中文版)》 —从摄像头中读取

} else {

cap.open(argv[1]);

}   if( !cap.isOpened() ) {  // check if we succeeded     std::cerr << "Couldn't open capture." << std::endl;     return -1;   }

// The rest of program proceeds as in #simple_opencv_program_for_playing_a_vide   ...

在示例2-10中,如果一个文件名被提供,OpenCV将如示例2-3所示打开指定的文件。如果没有给予任何文件名,程序将尝试打开一个摄像头。我们加入一段检查代码来确定程序是否真的开启了一些东西,如果没有,将报错。

视频 OpenCV

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:导出Cassandra数据指南
下一篇:Linux挂载持有系统镜像光驱
相关文章