MATLAB: Unable to perform assignment because the indices on the left side are not compatible with the size of the right side

digital image processingimage analysisMATLAB

Hello,
I am trying to crop different parts of an image. the objects cannot be attained automatically or by coordinates so I have to crop them manually.
The code that I am using is:
im = imshow('DJI_0834.jpg');
for i = 1:30
cropped(i)=imcrop(im)
end
It shows the image with the crop cursor but when I try to save the first crop it shows the error message in the title.
I also have a question if I can automatically save them as JPG files after finishing the crop.
Thanks.

Best Answer

imcrop return an image (2D or a 3D array). You cannot assign it as an element of a numeric array. You need a cell array
im = imshow('DJI_0834.jpg');
cropped = cell(1, 30);
for i = 1:30
cropped{i}=imcrop(im);
end
Access them using brace indexing
cropped{1}; % first cropped image
cropped{2}; % second cropped image
..
..
cropped{end}; % last cropped image