#include<iostream>
#include<opencv2\opencv.hpp>
int main() { cv::Mat frame; cv::Mat keyFrame; cv::Mat result; cv::VideoCapture vCap; //打开摄像头 vCap.open(0); if (!vCap.isOpened()) { std::cout << "无法打开摄像头,请检查" << std::endl; return -1; }
for (int i = 0; i < 50; ++i) { vCap >> frame; if (!frame.empty()) { if (i == 45) { keyFrame = frame.clone(); } cv::imshow("灵魂出窍特效", frame); char c = (char)cv::waitKey(30); if (c == 27 || c == 'q' || c == 'Q' || c == ' ') { break; } } }
for (;;) { vCap >> frame; if (!frame.empty()) { result = keyFrame.clone(); result += frame / 2; cv::imshow("灵魂出窍特效", result); char c = (char)cv::waitKey(30); if (c == 27 || c == 'q' || c == 'Q' || c == ' ') { break; } } }
return 0; }