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");
 }
经验分享 程序员 微信小程序 职场和发展