OpenCV之彩色视频转黑白视频
老老老规矩,上代码
先把核心代码单独搞出来喵一眼:
vtColor(frame, BlackWhiteVideo, CV_BGR2GRAY);
来头抬起来看黑板:
#include <iostream>
#include <opencv2opencv.hpp>
#include <opencv2highguihighgui_c.h>
using namespace std;
using namespace cv;
void main()
{
VideoCapture capture;
capture.open("E:\gongye1.mp4");
if (!capture.isOpened())
{
cout << "can not open ...
";
return;
}
cvNamedWindow("play vedio");
long totalFrameNumber = capture.get(CAP_PROP_FRAME_COUNT); // 获取视频的总帧数
long i = 1;
while (true)
{
Mat frame;
Mat BlackWhiteVideo;
VideoWriter videowriter("E:\gongye1change.avi", VideoWriter::fourcc(M, J, P, G), 30, Size(640, 640), true); //改变图像的帧速为30,图像帧的大小是(640,480)
capture >> frame;
if (i > totalFrameNumber) break; i++;
imshow("play vedio", frame); // 窗口展示原视频
char c = waitKey(33);
if (c == 27) break; //按“Esc”退出
if (c == 32) waitKey(0);//空格实现暂停
// CV_BGR2GRAY枚举值为6 2.3.4.5:偏黄,6.7.10.11:黑白
cvtColor(frame, BlackWhiteVideo, CV_BGR2GRAY); // 这句是关键
imshow("BlackWhiteVideo", BlackWhiteVideo); // 窗口展示黑白视频
}
capture.release();
cvDestroyWindow("play vedio");
}
