博客
关于我
Opencv读取视频或调用摄像头
阅读量:477 次
发布时间:2019-03-06

本文共 1509 字,大约阅读时间需要 5 分钟。

一、OpenCV 读取视频

在使用 OpenCV 读取视频时,首先需要导入相应的库文件。在编写代码时,请确保添加以下库:-lopencv_video -lopencv_videoio。这些库是 OpenCV 视频功能的必需组件。

接下来,通过 Include 语句引入必要的 헤더文件。具体来说,需要引入 OpenCV 的基础库和输入输出库:

`#include
` `#include
`

在代码中启用 OpenCV 和 标准输入输出库的命名空间:

`using namespace cv;` `using namespace std;`

接下来,在主函数中初始化 VideoCapture 对象,并使用相应的视频文件路径打开视频:

`VideoCapture cap;` `cap.open("./face.mp4");`

如果视频打开失败,可以通过判断返回值是否为 false 来检测。如果视频未正确打开,可以直接返回程序:

`if(!cap.isOpened()) return;`

接下来,可以获取视频的帧宽度、高度、帧率和总帧数等信息:

`int width = cap.get(CV_CAP_PROP_FRAME_WIDTH);` `int height = cap.get(CV_CAP_PROP_FRAME_HEIGHT);` `int frameRate = cap.get(CV_CAP_PROP_FPS);` `int totalFrames = cap.get(CV_CAP_PROP_FRAME_COUNT);`

最后,可以将视频帧读取到矩阵中,并在屏幕上显示视频内容。循环读取每一帧视频画面,并使用 waitKey 方法控制视频播放速度和动画延迟:

`Mat frame;` `while(1)` `{` `cap >> frame;` `if(frame.empty()) break;` `imshow(" video", frame);` `if(waitkey(20) == 0) break;` `}` `cap.release();`

释放视频资源后,结束程序的执行。

二、调用摄像头

在 OpenCV 中调用摄像头或视频源,可以使用 VideoCapture 对象。通过 VideoCapture 对象可以获取实时视频流或静态图像。在这一部分,我们将展示如何使用 VideoCapture 来调用摄像头设备。

打开第一个视频源(通常对应摄像头设备):

`VideoCapture cap;` `cap.open(0);`

与视频文件的方式类似,可以读取视频帧并将其存储在图像矩阵中。但在摄像头调用中,通常会进行实时图像处理或检测:

`while(cap.read())` `{` `// 实现图像处理或检测逻辑` `}` $p> 在实际应用中,可能需要对时间进行记录和计算,以优化算法性能。例如,可以使用 timestamp 来跟踪每帧处理的时间:

`Stopwatch ti;` `while(1)` `{` `cap.read();` `if(frame.empty()) break;` `ti.reset();` `// 用于跟踪处理时间` `// ...` `}`

这样可以通过计算每帧处理时间,来审视算法的运行效率。此外,可以通过打印日志信息,定期显示平均时间和处理速度:

`if(count % 1000 == 0)` `{` `printf("face detection average time = %f.\n", time / count);` `}`

转载地址:http://nlpdz.baihongyu.com/

你可能感兴趣的文章
python基于flask搭建http服务(四)—— Docker容器化部署
查看>>
Python块键盘/鼠标输入
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>
Python和黑客技术的渊源
查看>>
Python和RF编写接口自动化
查看>>
python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
查看>>
python和java哪个更值得学——来自知乎高赞回答
查看>>
python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
查看>>