#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;
}