- 视频格式支持
avi、mp4 - 从视频文件中读写视频
VideoCapture
read、isOpened、release、>>操作符重载 - 从摄像头中导出视频
1)VideoWriter
2)fourcc.org
CV_FOURCC(‘D’, ‘I’, ‘V’, ‘X’) = MPEG-4 codec
CV_FOURCC(‘P’, ‘I’, ‘M’, ‘1’) = MPEG-1 codec
CV_FOURCC(‘U’, ‘2’, ‘6’, ‘3’) = H263 codec
2)打开对话框选择
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
VideoCapture capture;
//capture.open("../path.avi");//读取视频文件
capture.open(0);//读取摄像头
if (!capture.isOpened())
{
cout << "could not load video..." << endl;
return -1;
}
//读取一些在VideoWriter writer建立时用到的属性
double fps = capture.get(CAP_PROP_FPS);
Size size = Size(capture.get(CAP_PROP_FRAME_WIDTH), capture.get(CAP_PROP_FRAME_HEIGHT));
cout << "FPS: " << fps << endl;//获取摄像头视频帧数
//导出视频
//VideoWriter writer("../path2.avi",//导出视频的路径及格式名avi
// -1,//fourcc.org编码
// fps,//fps
// size,//frameSize
// true);
Mat frame,gray,temp;
namedWindow("Video_demo", WINDOW_AUTOSIZE);
while (capture.read(frame))
{
//cvtColor(frame, gray, COLOR_BGR2GRAY);//视频转灰度
//threshold(gray, temp, 0, 255, THRESH_BINARY | THRESH_OTSU);//视频灰度二值化
bitwise_not(frame, frame);//取反
imshow("Video_demo", frame);
char c = waitKey(100);
if (c == 27)
{
break;
}
}
capture.release();
waitKey(0);
return 0;
}
输出结果:打开摄像机。