本文轉載請注明出處 —— polobymulberry-部落格園
0x00 - 前言
之前mulberryAR隻能利用手機相機實時捕捉圖像作為系統的輸入,這也比較符合使用者的習慣。但是在開發的過程中,有時候想對比兩種方法的優劣,看看性能優化的程度,那麼作為輸入應該保證一緻才可以。而實時捕捉的圖像可能無法滿足這樣的要求,是以添加了連續圖像錄制和連續圖像作為系統輸入的功能。功能本身實作起來不是很麻煩。
0x01 - 功能實作
1.圖像錄制功能
第一步,擷取圖檔的存儲位置。在app的Documents檔案夾建立一個Test檔案夾,每一幀圖像按照存儲的順序命名為0000.png、0001.png…
第二步,将圖像存儲為png格式。使用cv::imwrite函數将需要存儲的cv::Mat對象存儲到本地。
// 将圖檔壓縮為png格式,壓縮等級為0,。壓縮等級越高,壓縮程度越大,時間越長
std::vector<int> compressParams;
compressParams.push_back(CV_IMWRITE_PNG_COMPRESSION);
compressParams.push_back(0);
// recordImageFilePath為每幀圖像存儲的絕對路徑
cv::imwrite([recordImageFilePath cStringUsingEncoding:NSUTF8StringEncoding], _imgMat, compressParams);
2.連續圖像作為輸入
第一步,擷取本地存儲的圖像。根據png圖檔名稱中的數字大小依次使用cv::imread函數擷取圖像作為輸入。
第二步,将解析的圖像作為輸入。整個流程和實時捕捉圖像的流程一緻。
0x02 - 效果展示
選擇具體功能。1.實時捕捉 2.錄制視訊 3.視訊檔案(通過錄制的視訊作為輸入)
分别為上述三種功能效果圖:
1.實施捕捉
2.錄制視訊
3.視訊檔案(通過錄制的視訊作為輸入)