我正在尝试构建一个应用程序,它从网络摄像头或外部设备获取数据,将视频帧保存到文本文件中,然后从创建的文本文件中读取帧。
我不知道保存到文本文件是否是个好主意,我是开放的建议。
到目前为止,我已经完成了保存到文本文件的工作。
我的问题是从文本文件中读取。基本上我逐行阅读文本,但我不知道如何将此文本转换为 Mat 对象。
到目前为止,我的代码是:
ifstream read_storage(new_vid_frm_path);
if(!read_storage.is_open()) {
perror("\n\n\n\t\t\t(-)FAIL : Can't Open SavedVideoFrames.txt\n\n\n\t\t\t");
return -1;
}
VideoWriter *vid = new VideoWriter(new_vid_frm_path,CV_FOURCC('P', 'I', 'M', '1'),30,Size(vc.get(CV_CAP_PROP_FRAME_WIDTH),vc.get(CV_CAP_PROP_FRAME_HEIGHT)));
Mat line;
vector<Mat> vid_frms;
while ( getline (read_storage,line) ) {
cout << line << '\n';
}
read_storage.close();
if(vid_frms.size() == 0){
printf("\n\n\n\t\t\t(-)FAIL: Error In Frame\n\n\n\t\t\t");
return -1;
}
for(size_t i = 0; i<vid_frms.size(); i++)
(*vid).write(vid_frms[i]);
printf("\n\n\n\t\t\t(+)SUCCESS: Video Processing Complete \n\n\n\t\t\t ");
你有什么建议我可以如何将此行字符串转换或转换为 Mat obejct?
while ( getline (read_storage,line) ) {
cout << line << '\n';
}
谢谢。
顺便说一句,我查看了这个解决方案,但我无法理解。 将一串字节转换为 cv::mat
我在 c++ 中找不到字节类型,我认为 String 到 Mat 对象之间可能存在直接转换。