Я думаю, вам нужно узнать, как работает память в C ++
В первом бите кода вы выделяете только один указатель изображения, а затем извлекаете все свои изображения и сохраняете копии одного и того же значения.
Во второй части вы выделяете новое изображение для каждого указателя, а затем перезаписываете эту память значением в массиве
Вы также должны прочитать о том, как openCV управляет памятью, он сделает это за вас автоматически.