如何使用imwrite使用日期和时间命名图像?

时间:2013-10-22 15:17:17

标签: c++ visual-c++ opencv

我真的想保存多张图片,但我想用日期和时间作为文件名来命名。有人可以告诉我如何处理以下代码:

//Saving Image
            Mat save_img; cap >> save_img;
            char buffer[20];
            char dateStr[20];
            char timeStr[20];
            _strdate(dateStr);
            _strtime(timeStr);

            if(save_img.empty())
            {
              std::cerr << "Something is wrong with the webcam, could not get frame." << std::endl;
            }
            // Save the frame into a file
            sprintf(buffer,"Cap %s%s.jpg",dateStr,timeStr);
            imwrite(buffer, save_img); // A JPG FILE IS BEING SAVED

            }

上面的代码不会保存任何文件图像,因此它不能正常工作,但不知何故它编码正确。跑步时速度很慢,我不知道为什么。 这只是我正在处理的代码的一部分。如果你知道如何改进这个,请发表评论。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并偶然发现了这篇Reddit帖子: http://www.reddit.com/r/learnpython/comments/1e4s39/opencv_cant_use_imwrite_dont_understand_error/

因此,为了在文件名中保存带日期和时间的文件,必须确保从字符串中删除所有“:”符号!

std::string filename;
std::replace(filename.begin(), filename.end(), ':', '_');