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"); }