opencv imwrite()保存指定路径

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文件夹,则 不会做任何事(也不会输出任何报错信息)。若已存在此文件夹,则可以正常保存。该文件夹可通过其他方式创建(如手动鼠标或命令行创建,各大语言也都有文件相关操作库)

猜你喜欢

转载自blog.csdn.net/qq_35858902/article/details/128933950