0
我想構建一個應用程序,它從網絡攝像頭或外部設備獲取數據,將視頻幀保存到文本文件中,然後從創建的文本文件中讀取幀。OpenCV從文本文件創建視頻
我不知道保存到文本文件是否是個好主意,我打開了一些建議。
到目前爲止,我已經完成了保存到文本文件。
我的問題是從文本文件中讀取。基本上我一行一行地閱讀文本,但我不知道如何將此文本轉換爲Mat對象。
到目前爲止,我的代碼是:你必須唉建議,我怎麼能投或轉換此行字符串太obejct
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 ");
做什麼?
while (getline (read_storage,line)) {
cout << line << '\n';
}
謝謝。
順便說一句,我看了這個解決方案,但我不明白。 Convert a string of bytes to cv::mat
我無法找到C++中的字節類型,我覺得可能是字符串墊目標之間的直接轉換。
而不是保存到文本,xml/yaml文件,如何保存爲圖像.png格式?然後,它可以作爲視頻輸入幀進行處理。但是,如果您嘗試在運行時創建視頻,則會減慢整個過程。 –
我同意@Ahmet Tavli的觀點,實際上大多數情況下,以這種方式保存資料的速度要快很多,然而,在問題本身的精神下,如果您需要文本的原因有很多,那麼沒有理由不使用可用的工具。 –