使用opencv将视频写入文件时出现问题
Trouble writing video to file using opencv
我正试图在visualstudio2013中使用C++中的OpenCV将捕获的视频写入文件。程序似乎可以从我笔记本电脑上的网络摄像头捕捉视频,还可以为每帧保存一张图像,但当我将帧写入视频文件时,我最终会得到一个6kb的文件。程序没有给我任何错误,因为我已经遵循了OpenCV文档中的说明。
我正在粘贴程序以供审查。请建议我如何使它成为一个成功的项目。
谢谢。
#include <stdio.h>
#include <iostream>
#include "opencv2corecore.hpp"
#include "opencv2highguihighgui.hpp"
using namespace std;
using namespace cv;
int main()
{
VideoCapture video_capture(0);
if (!video_capture.isOpened())
{
cout << "Error in opening video feed!" << endl;
getchar();
return -1;
}
// Creating the window to view video feed
String window_name = "Video_Feed";
namedWindow(window_name, CV_WINDOW_AUTOSIZE);
//
Mat frame;
// Filename
String filename = "...\first_recording.avi";
// four character code
int fcc = CV_FOURCC('M', 'P', '4', '2');
// frames per sec
int fps = 10;
// frame size
Size frame_size(CV_CAP_PROP_FRAME_WIDTH, CV_CAP_PROP_FRAME_HEIGHT);
VideoWriter video_writer = VideoWriter(filename,fcc,fps,frame_size,true);
if (!video_writer.isOpened())// || video_writer.isOpened == NULL)
{
cout << "Error in opening video writer feed!" << endl;
getchar();
return -1;
}
int frame_count = 0;
while (frame_count < 100)
{
bool cap_success = video_capture.read(frame);
if (!cap_success)
{
cout << "Error in capturing the image from the camera feed!" << endl;
getchar();
break;
}
imshow(window_name, frame);
//imwrite("cap.jpg", frame);
video_writer.write(frame);
switch (waitKey(10))
{
case 27:
return 0;
break;
}
frame_count++;
}
//scvReleaseVideoWriter;
destroyWindow(window_name);
return 0;
}
请找到下面的一段代码来编写视频文件。
int main(int argc, char* argv[])
{
// Load input video
cv::VideoCapture input_cap("test8.avi");
if (!input_cap.isOpened())
{
std::cout << "!!! Input video could not be opened" << std::endl;
return -1;
}
// Setup output video
cv::VideoWriter output_cap("output.avi",
input_cap.get(CV_CAP_PROP_FOURCC),
input_cap.get(CV_CAP_PROP_FPS),
cv::Size(input_cap.get(CV_CAP_PROP_FRAME_WIDTH), input_cap.get(CV_CAP_PROP_FRAME_HEIGHT)));
if (!output_cap.isOpened())
{
std::cout << "!!! Output video could not be opened" << std::endl;
return -1;
}
// Loop to read frames from the input capture and write it to the output capture
cv::Mat frame;
while (true)
{
if (!input_cap.read(frame))
break;
output_cap.write(frame);
}
// Release capture interfaces
input_cap.release();
output_cap.release();
return 0;
}
相关文章:
- 使用mongocxx驱动程序时包含头文件问题
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 编译要在英特尔Hyperscan中使用的.cc文件时出现问题
- 使用 seekg() 读取C++中的文件时出现问题
- sqlite3 和生成文件中的链接出现问题
- C++头文件和类实现出现问题
- 用户输入字符串的文件附加问题..C++
- node-gyp 的先有鸡还是先有蛋的问题:指向依赖项中的头文件
- 读取文件并将其存储在unordered_map中时出现问题
- 编译 llvm 插件时出现问题:llvm/Config/llvm-config.h:没有这样的文件或目录
- 我在使用C++文件时遇到了一些问题
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- 将文件复制到自定义位置,存在字符串转换问题
- DirectX12 的问题:"d3dApp.h":没有这样的文件或目录
- (ODR 使用问题)在不同文件中priority_queue名称相同的结构
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 读取制表符分隔的文件时出现问题 C++
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 使用 RapidXML 解析大型 XML(大小大于 65 KB)文件时出现问题
- C++:读取.BMP文件时出现问题;文件结束时间早于预期