Linux下OpenCV摄像头录像(c++)
Posted XXX_UUU_XXX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
#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;
执行:
- cmake .
- make
- ./test_opnecv
- 生成录像视频test.avi
以上是关于Linux下OpenCV摄像头录像(c++)的主要内容,如果未能解决你的问题,请参考以下文章
为啥用opencv捕获摄像头视频流时,突然显示框内就变灰了呢
OpenCV保存USB摄像头视频流,附C++和Python源代码