opencv 从摄像头中读取视频并保存(c++版)_YouthDance-CSDN博客_opencv 保存摄像头视频

参考如上

CMakeLists.txt

# cmake版本
cmake_minimum_required(VERSION 2.8.3)
# c++ 11
set(CMAKE_CXX_FLAGS "-std=c++11")
# 项目名
project(test_opencv)
# 使用OpenCV
find_package(OpenCV REQUIRED)
# 添加头文件
include_directories(${OpenCV_INCLUDE_DIRS})
# 查找指定目录下的所有源文件,然后将结果存进指定变量名。语法:
# aux_source_directory(<dir> <variable>)
# 查找当前目录下的所有源文件
# 并将名称保存到SRC_LIST变量
aux_source_directory(. SRC_LIST)
# 生成可执行文件
add_executable(test_opencv ${SRC_LIST})
# 生成可执行文件后,为生成文件target添加库
target_link_libraries(test_opencv ${OpenCV_LIBS})

test_opencv.cpp   OpenCV 3版本

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;int main()
{// 视频保存位置string outputVideoPath = "./test.avi";  // 打开摄像头VideoCapture capture0(0);  VideoWriter outputVideo;// 获取摄像机帧率int fps = capture0.get(CAP_PROP_FPS);  // 获取当前摄像头的视频信息cv::Size S = cv::Size((int)capture0.get(CV_CAP_PROP_FRAME_WIDTH),(int)capture0.get(CV_CAP_PROP_FRAME_HEIGHT));// 打开视频路径,设置基本信息 open函数中你参数跟上面给出的VideoWriter函数是一样的outputVideo.open(outputVideoPath, CV_FOURCC('X', 'V', 'I', 'D'), fps, S, true);if (!outputVideo.isOpened()) {cout << "fail to open!" << endl;return -1;}// 图片帧cv::Mat frameImage;int count = 0;while(true){// 读取当前帧capture0 >> frameImage;if(frameImage.empty()) break;++count;// 输出当前帧cv::imshow("output", frameImage);// 保存当前帧outputVideo << frameImage;if (char(waitKey(1)) == 'q') break;}return 0;
}

test_opencv.cpp   OpenCV 4版本

#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;int main()
{// 视频保存位置string outputVideoPath = "./test.avi";  // 打开摄像头VideoCapture capture0(0);  VideoWriter outputVideo;// 获取摄像机帧率int fps = capture0.get(CAP_PROP_FPS);  // 获取当前摄像头的视频信息cv::Size S = cv::Size((int)capture0.get(CAP_PROP_FRAME_WIDTH),(int)capture0.get(CAP_PROP_FRAME_HEIGHT));// 打开视频路径,设置基本信息 open函数中你参数跟上面给出的VideoWriter函数是一样的outputVideo.open(outputVideoPath, cv::VideoWriter::fourcc('X', 'V', 'I', 'D'), fps, S, true);if (!outputVideo.isOpened()) {cout << "fail to open!" << endl;return -1;}// 图片帧cv::Mat frameImage;int count = 0;while(true){// 读取当前帧capture0 >> frameImage;if(frameImage.empty()) break;++count;// 输出当前帧cv::imshow("output", frameImage);// 保存当前帧outputVideo << frameImage;if (char(waitKey(1)) == 'q') break;}return 0;
}

执行:

  • cmake .
  • make
  • ./test_opencv
  • 生成录像视频test.avi

Linux下OpenCV摄像头录像(c++)相关推荐

  1. linux环境用opencv读取图片,基于Linux下OpenCV的人脸识别模块设计

    金笑雪 张琳琳 高丹 张黎 摘 要: 近年来,图像识别技术正在向更加直观.可靠的方向发展,其中人脸识别技术具有极高的研究价值,应用得也最为广泛.通过对Linux系统下OpenCV的研究,利用OpenC ...

  2. Qt/Linux 下的摄像头捕获(Video4Linux2)

    Linux下使用各种设备是一件令人兴奋的事情.在Unix的世界里,用户与硬件打交待总是简单的.最近笔者在Linux下搞了摄像头的开发,有一点感想发于此处. Linux中操作一个设备一般都是打开(ope ...

  3. linux 远程挂载摄像头_如何实现嵌入式Linux下USB摄像头视频采集

    展开全部 在linux下所e5a48de588b662616964757a686964616f31333337613134有设备都是文件.所以对摄像头的操作其实就是对文件的操作.USB摄像头的设备文件 ...

  4. C语言高级应用---操作linux下V4L2摄像头应用程序

    目录(?)[-]采集方式V4L2操作流程点击这个网址说得很详细了这里不多说httpbaikebaiducomview5494174htm我们都知道,想要驱动Linux下的摄像头,其实很简单,照着V4L ...

  5. Linux的uvc的摄像头驱动,[OpenWrt Wiki] Linux下的摄像头驱动UVC

    ==== Linux下的摄像头驱动UVC ==== 以下操作及配置均基于Logitech Quickcam Pro for Notebooks (2007)的摄像头.在Trunk开发版本的OpenWr ...

  6. 借助motion操控Linux下的摄像头

    介绍 本文介绍如何使用motion来操控Linux下的摄像头. 安装 apt-get install motion 配置文件 输入命令后面的命令编辑配置文件,vim /etc/motion/motio ...

  7. linux系统USB摄像头反应慢,Linux下OpenCV打开USB接口的UVC摄像头及索引号是202的原因...

    一般来说,USB的UVC摄像头在Linux平台下通过V4L驱动来使用.OpenCV打开USB的UVC摄像头一般也通过V4L驱动来打开.打开方法网上都有,一般就是通过VideoCapture的open( ...

  8. linux下的摄像头驱动怎么安装方法,linux下良田摄像头驱动怎么装?

    2011-07-28 回答 下载驱动精灵更新一下就行了 追问: 驱动精灵是在windows下运行的 看题目linux下 我下载了libland_10018_linux.tar.gz的驱动 怎么命令来装 ...

  9. linux 下笔记本摄像头设备名称,Ubuntu下关闭笔记本电脑的内置摄像头的一种方法...

    先說明:我用的是Lenovo G450,用的是uvc攝像頭驅動. 對於在網上論壇找不到合適的方法,以及Ubuntu隻有音頻設置軟件,我感到十分無奈.也許是大蝦們不想為那些對Linux沒有學習興趣的人費 ...

  10. linux下的屏幕录像软件罗列

    linux环境下也有不少好用的屏幕录像软件,现在罗列5款比较通用的如下,供大家参阅: Recordmydesktop           #yum install recordmydesktop gt ...

最新文章

  1. python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串...
  2. 计算机学院 储昭坤,我校在“展航杯”安徽省大学生信息安全作品赛荣获佳绩...
  3. Linux mysql设置密码
  4. python基础语法-异常处理
  5. ApplePay集成教程
  6. 最后一条记录_幸好朋友圈没有访客记录。
  7. 7种常用p2p共享协议
  8. MegaCli命令总结
  9. 常用的分隔符有哪三种_掌握这三种调漂方法,你想怎么钓就怎么钓,再也不用求人...
  10. 全球首发!计算机视觉Polygon Mesh Processing总结8——Remeshing Global Structure和Correspondences
  11. Tomcat找不到Controller里面的路径
  12. 深度学习,实现智能聊天对话机器人(大数据人工智能公司)
  13. 如何进行自学软件测试?
  14. Chrome插件扩展程序的默认安装目录
  15. 【JavaSE】Lambda表达式、接口组成更新、方法引用
  16. lavavel 环境配置 summer版
  17. 【仿淘宝首页】前端网页模板,大学生前端作业分享,html5+css电商网站模板,包含js动效
  18. 青龙面板 Bot配置教程
  19. 什么是冷备份和热备份
  20. ETL DataStage实现

热门文章

  1. WebSocket之GoEasy框架
  2. 东华大学计算机专业在哪个校区,东华大学有几个校区及地址
  3. 8uftp官网网址,8uftp官网网址及5大软件特色
  4. 生信技能树课程记录笔记(一)20220523
  5. NSSM的下载与使用
  6. SNOWNLP情感分析报错解决
  7. B样条曲线的一些基本性质
  8. 机器学习-DBSCAN密度聚类
  9. python bartender,python集成Bartender的多线程编程
  10. DBN(深度置信网络)解析