Linux下OpenCV摄像头录像(c++)
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++)相关推荐
- linux环境用opencv读取图片,基于Linux下OpenCV的人脸识别模块设计
金笑雪 张琳琳 高丹 张黎 摘 要: 近年来,图像识别技术正在向更加直观.可靠的方向发展,其中人脸识别技术具有极高的研究价值,应用得也最为广泛.通过对Linux系统下OpenCV的研究,利用OpenC ...
- Qt/Linux 下的摄像头捕获(Video4Linux2)
Linux下使用各种设备是一件令人兴奋的事情.在Unix的世界里,用户与硬件打交待总是简单的.最近笔者在Linux下搞了摄像头的开发,有一点感想发于此处. Linux中操作一个设备一般都是打开(ope ...
- linux 远程挂载摄像头_如何实现嵌入式Linux下USB摄像头视频采集
展开全部 在linux下所e5a48de588b662616964757a686964616f31333337613134有设备都是文件.所以对摄像头的操作其实就是对文件的操作.USB摄像头的设备文件 ...
- C语言高级应用---操作linux下V4L2摄像头应用程序
目录(?)[-]采集方式V4L2操作流程点击这个网址说得很详细了这里不多说httpbaikebaiducomview5494174htm我们都知道,想要驱动Linux下的摄像头,其实很简单,照着V4L ...
- Linux的uvc的摄像头驱动,[OpenWrt Wiki] Linux下的摄像头驱动UVC
==== Linux下的摄像头驱动UVC ==== 以下操作及配置均基于Logitech Quickcam Pro for Notebooks (2007)的摄像头.在Trunk开发版本的OpenWr ...
- 借助motion操控Linux下的摄像头
介绍 本文介绍如何使用motion来操控Linux下的摄像头. 安装 apt-get install motion 配置文件 输入命令后面的命令编辑配置文件,vim /etc/motion/motio ...
- linux系统USB摄像头反应慢,Linux下OpenCV打开USB接口的UVC摄像头及索引号是202的原因...
一般来说,USB的UVC摄像头在Linux平台下通过V4L驱动来使用.OpenCV打开USB的UVC摄像头一般也通过V4L驱动来打开.打开方法网上都有,一般就是通过VideoCapture的open( ...
- linux下的摄像头驱动怎么安装方法,linux下良田摄像头驱动怎么装?
2011-07-28 回答 下载驱动精灵更新一下就行了 追问: 驱动精灵是在windows下运行的 看题目linux下 我下载了libland_10018_linux.tar.gz的驱动 怎么命令来装 ...
- linux 下笔记本摄像头设备名称,Ubuntu下关闭笔记本电脑的内置摄像头的一种方法...
先說明:我用的是Lenovo G450,用的是uvc攝像頭驅動. 對於在網上論壇找不到合適的方法,以及Ubuntu隻有音頻設置軟件,我感到十分無奈.也許是大蝦們不想為那些對Linux沒有學習興趣的人費 ...
- linux下的屏幕录像软件罗列
linux环境下也有不少好用的屏幕录像软件,现在罗列5款比较通用的如下,供大家参阅: Recordmydesktop #yum install recordmydesktop gt ...
最新文章
- python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串...
- 计算机学院 储昭坤,我校在“展航杯”安徽省大学生信息安全作品赛荣获佳绩...
- Linux mysql设置密码
- python基础语法-异常处理
- ApplePay集成教程
- 最后一条记录_幸好朋友圈没有访客记录。
- 7种常用p2p共享协议
- MegaCli命令总结
- 常用的分隔符有哪三种_掌握这三种调漂方法,你想怎么钓就怎么钓,再也不用求人...
- 全球首发!计算机视觉Polygon Mesh Processing总结8——Remeshing Global Structure和Correspondences
- Tomcat找不到Controller里面的路径
- 深度学习,实现智能聊天对话机器人(大数据人工智能公司)
- 如何进行自学软件测试?
- Chrome插件扩展程序的默认安装目录
- 【JavaSE】Lambda表达式、接口组成更新、方法引用
- lavavel 环境配置 summer版
- 【仿淘宝首页】前端网页模板,大学生前端作业分享,html5+css电商网站模板,包含js动效
- 青龙面板 Bot配置教程
- 什么是冷备份和热备份
- ETL DataStage实现