视频文件摄像头使用
完整代码
void QuickDemo::video_demo(Mat &image)
{
VideoCapture capture(0); //打开摄像头
Mat frame;//定义一个二值化的 frame
while (true)
{
capture.read(frame); //读取视频
//flip(frame, frame, 1);//图像镜像操作
if(frame.empty())//如果视频为空的话 跳出操作
{
break;
}
imshow("frame", frame);//显示视频
colorSpace_Demo(frame);//对视频调用之前的demo
int c = waitKey(100);//停顿100ms 做视频处理都是1
if (c == 27) { //esc 退出应用程序
break;
}
}
capture.release();//释放相机的资源
}
视频处理与保存
视频的属性
SD(标清),HD(高清),UHD(超清),蓝光。
如何读取视频文件,以及读取视频文件的属性,衡量视频处理指标:FPS。
保存视频时的编码格式。
保存视频的实际size和create的size大小保持一致。
完整代码
void QuickDemo::video_demo(Mat &image)
{
VideoCapture capture("D:/images/123.mp4");
int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);//获取视频的宽度
int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);//获取视频的高度
int count = capture.get(CAP_PROP_FRAME_COUNT);//视频总的帧数
//fps是衡量处理视频的能力
double fps = capture.get(CAP_PROP_FPS);
std::cout << "frame width" << frame_width << std::endl;
std::cout << "frame height" << frame_height << std::endl;
std::cout << "frame FPS" << fps << std::endl;
std::cout << "frame count" << count << std::endl;
VideoWriter writer("D:/test.mp4",capture.get(CAP_PROP_FOURCC),fps,Size(frame_width, frame_height),true);
//参数1 保存地址。参数2 获取图片的格式 参数3 图片的帧数 参数4 视频宽高 参数5 真
Mat frame;
while (true)
{
capture.read(frame);
//flip(frame, frame, 1);//图像镜像操作
if(frame.empty())
{
break;
}
imshow("frame", frame);
colorSpace_Demo(frame);
writer.write(frame);
int c = waitKey(100);//停顿100ms 做视频处理都是1
if (c == 27) { //esc 退出应用程序
break;
}
}
capture.release();//释放相机的资源
writer.release();//释放存放的资源
}