#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
//图像保存
void Test04()
{
Mat img; //创建 Mat 类,储存目标图像
img = imread("D:\\TYW\\OpenCV\\HappyFish.jpg"); //读取目标图像
imwrite("D:\\TYW\\OpenCV\\Fish.jpg", img); //保存目标图像到指定位置
imshow("fish", img); //显示目标图像
waitKey(0); //设置图像刷新延时
}
//视频保存
void Test05()
{
VideoCapture cap("D:\\TYW\\OpenCV\\12.mp4"); //创建 VideoCapture 类对象,储存视频文件
int frame_width = cap.get(CAP_PROP_FRAME_WIDTH); //获取目标视频宽度属性
int frame_height = cap.get(CAP_PROP_FRAME_HEIGHT); //获取目标视频高度属性
int frame_count = cap.get(CAP_PROP_FRAME_COUNT); //获取目标视频总帧数属性
double fps = cap.get(CAP_PROP_FPS); //获取目标视频帧率属性
//将视频各种属性保存
VideoWriter wri("D:\\TYW\\OpenCV\\11.mp4", cap.get(CAP_PROP_FOURCC), fps, Size(frame_width, frame_height), true);
Mat frame;
while (true) //循环结构,循环显示视频每一帧画面
{
cap.read(frame); // frame 为输出,read 是将捕获到的视频一帧一帧的传入 frame
//对视频读取时,判空操作
if (frame.empty())
{
break;
}
wri.write(frame); //将保存到 frame 的视频写入 wri 进行保存
imshow("frame", frame); //显示视频
waitKey(1); //设置图像刷新延时
}
cap.release(); //释放视频内存空间
wri.release();
}
int main()
{
Test05();
}