图片及视频打开与保存:
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace std;
using namespace cv;
void pictureReadAndWrite()
{
Mat img = imread("E:\\工作\\opencv c++\\test.png");
imshow("读取图片", img);
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
imshow("灰度图片", gray);
imwrite("E:\\工作\\opencv c++\\test_gray.png", gray);
}
void videoReadAndWrite()
{
VideoCapture cap("E:\\工作\\opencv c++\\1.mp4");
int count = cap.get(CAP_PROP_FRAME_COUNT);
int height = cap.get(CAP_PROP_FRAME_HEIGHT);
int width = cap.get(CAP_PROP_FRAME_WIDTH);
double fps = cap.get(CAP_PROP_FPS);
int fourcc = cap.get(CAP_PROP_FOURCC);
cout << "视频的总帧数:" << count << endl;
cout << "视频的高度:" << height << endl;
cout << "视频的宽度:" <<width << endl;
cout << "视频的刷新率:" << fps << endl;
cout << "视频的编码方式:" <<fourcc << endl;
VideoWriter writer("E:\\工作\\opencv c++\\10.mp4", fourcc, fps, Size(width,height ),true);
Mat img,gray;
if (!cap.isOpened())
{
return ;
}
while (1)
{
cap.read(img);
if (img.empty())
{
break;
}
imshow("视频", img);
cvtColor(img, gray, COLOR_BGR2GRAY);
writer.write(gray);
imshow("灰度", gray);
int k=waitKey(10);
if (k == 27)
{
break;
}
}
cap.release();
}
int main()
{
pictureReadAndWrite();
videoReadAndWrite();
return 0;
}