cpp为例
#include <opencv2/opencv.hpp>
#include <string>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap(0);
if (!cap.isOpened())
{
cout << "Could not open the input video " << endl;
return -1;
}
Mat frame;
string imgname;
int f = 1;
while (1)
{
cap >> frame;
if (frame.empty())
break;
imshow("Camera", frame);
static char key = waitKey(1);
if (key == 'q' || key == 'Q') // 退出运行
break;
if (key == 'k' || key == 'K') // 截取图片
{
cout << "frame:" << f << endl;
imgname = "snapPhotos/"+to_string(f++) + ".jpg";
imwrite(imgname, frame);
}
}
return 0;
}
第32行为相对路径,当前工作目录为根目录(指VS的工程根目录、vscode打开的文件夹目录)。
也可以使用绝对路径,如
imgname = "d:/photos/1.jpg";
imwrite(imgname, frame);
注:imwrite()不会创建文件夹
如上相对路径的例子中,理想情况下图片会保存到snapPhotos文件夹内。但若不存在snapPhotos文件夹,则 不会做任何事(也不会输出任何报错信息)。若已存在此文件夹,则可以正常保存。该文件夹可通过其他方式创建(如手动鼠标或命令行创建,各大语言也都有文件相关操作库)