gpt4 book ai didi

c++ - 访问视频的每一帧并对其进行处理

转载 作者:行者123 更新时间:2023-11-28 00:35:44 35 4
gpt4 key购买 nike

我正在尝试编写一个程序,使用带有 CPP 的 OPENCV 将视频文件的每一帧存储为图像。我用 ffmpegmplayer 实现了这一点。我想使用 OPENCV 获取它。谁能帮忙?除了 IMWRITE() 之外,还有其他函数可以将图像存储到文件吗?

OPENCV 中是否有任何功能可以获取设备特定端口可用的实时视频流并进行实时处理?即将每一帧流存储为图像?谁能帮帮我?

提前致谢..:)

最佳答案

保存所有文件名递增的图像,这对我有用:

const char* videofilename = "StopMoti2001.mpeg";
cv::VideoCapture cap(videofilename); // open a video file
if(!cap.isOpened()) // check if succeeded
{
std::cout << "file " << videofilename << " not found or could not be opened" << std::endl;
return;
}

cv::namedWindow("output");

unsigned long counter = 0;

cv::Mat frame;
// read frames until end of video:
while(cap.read(frame))
{

// display frame
cv::imshow("output", frame); cv::waitKey(25); // remove this line if you don't need the live output


// adjust the filename by incrementing a counter
std::stringstream filename (std::stringstream::in | std::stringstream::out);
filename << "image" << counter++ << ".jpg";

std::cout << "writing " << filename.str().c_str() << " to disk" << std::endl;

// save frame to file: image0.jpg, image1.jpg, and so on...
cv::imwrite(filename.str().c_str(),frame);

}

关于c++ - 访问视频的每一帧并对其进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21036975/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com