Opencv视觉处理(C++)语法学习(8)视频流读入与视频处理
·
读取视频流的方法
void QuickDemo::video_demo(Mat &img)
{
// 读取视频需要调用api 产生一个对象,并调用对象中的方法
VideoCapture capture("E:/data/vtest.avi");
Mat frame;
while (1)
{
capture.read(frame);
flip(frame, frame, 1);
if (frame.empty())
{
break;
}
imshow("frame", frame);
char c = waitKey(10);
if (c == 27)
{
break;
}
}
}
视频处理保存
void QuickDemo::video_demo(Mat &img)
{
// 读取视频需要调用api 产生一个对象,并调用对象中的方法
VideoCapture capture("E:/data/vtest.avi");
Mat frame;
int fw = capture.get(CAP_PROP_FRAME_WIDTH);
int fh = capture.get(CAP_PROP_FRAME_HEIGHT);
int fc = capture.get(CAP_PROP_FRAME_COUNT);
double fps = capture.get(CAP_PROP_FPS);
std::cout << "视频的宽度为:" << fw << " " << "视频的高度为" << fh << " " << endl;
std::cout << "视频的总帧数为" << fc << endl;
std::cout << "视频的fps为" << fps<<endl;
VideoWriter writer("E:/data-output/output1.avi", capture.get(CAP_PROP_FOURCC), fps,Size(fw, fh), true);
//保存视频的api(要保存的路径及其文件名,编码方式,)
while (1)
{
capture.read(frame);
if (frame.empty())
{
break;
}
flip(frame, frame, 1);
cvtColor(frame, frame, COLOR_BGR2GRAY);
writer.write(frame);
imshow("frame", frame);
char c = waitKey(5);
if (c == 27)
{
break;
}
}
capture.release();
writer.release();
}
视频处理小案例
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)