我正在寫一個邏輯來檢索opencv C++中的視頻的每個第3幀,同時執行我在第一個for循環中遇到問題時嘗試打印(cout )「i」值輸出僅高達687,之後出現「錯誤:內存不足(分配失敗2764804字節)內存不足」錯誤。從opencv C++中的視頻文件中檢索每個第3幀
int main(){
string path = "C:/vid_frames/Highway_Hamilton.avi";
VideoCapture capture(path);
Mat matImage[1000];
cout<<"initalization done";
//obtaining frames from the video into matimage variable
for(int i=0;i<1000;i++) {
char filename[30]="Existing frame";
capture >> matImage[i];
cout<<"i:"<<i;
if (matImage[i].empty())
{
cout << "Cannot load image!,runnig application might abort exit,press any key:" << endl;
getchar();
}
char frame_id[30];
itoa(i, frame_id, 15);
strcat(filename, frame_id);
}
int num=0;
for(int i=0;num<1000;i++) {
char filename[30]="Required frame";
char frame_id[30];
itoa(num, frame_id, 10);
strcat(filename, frame_id);
num=num+3;
}
}
建議我我如何可以訪問墊變量的數組超越687,並請讓我知道是否有任何其他邏輯存在從視頻檢索每3幀,這樣我就可以搬出這個概率的,解決這個問題肯定是可觀的。提前致謝。
你想緩存1000個圖像的2.7 MB內存?爲什麼?你實際上想要用每一個第三幀來做什麼? – berak