Я пишу логику для извлечения каждого 3-го кадра из видео в opencv С++, при выполнении я сталкиваюсь с проблемой в первом цикле for, когда я пытаюсь распечатать (cout) значение 'i' только до 687, после чего Возникает ошибка «Ошибка: недостаточно памяти (не удалось выделить 2764804 байта) из памяти».
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;
}
}
предложите мне, как я могу получить доступ к массиву переменных Mat за пределами 687, и любезно дайте мне знать, существует ли какая-либо другая логика для извлечения каждого третьего кадра из видео, чтобы я мог выйти из этой проблемы, решение этой проблемы, безусловно, заметно. заранее спасибо.