Multiple output images from function

4 views (last 30 days)
The length of column 1 in bboxout is an unknown, how do I adjust my code to output each iteration of ROI_RGB?
If I use figure, imshow in the for loop each image is displayed, however I need to acces the data for each image seperately outside of the function.
function [ROI_RGB] = cleanup(bboxout, I1)
for i=1:length(bboxout)
%Crop out region of interest
ROI_RGB = imcrop(I1, bboxout(i,:));
end
end

Accepted Answer

Ameer Hamza
Ameer Hamza on 2 May 2020
Edited: Ameer Hamza on 2 May 2020
Use cell array
function [ROI_RGB] = cleanup(bboxout, I1)
ROI_RGB = cell(1, size(bboxout,1));
for i=1:size(bboxout,1)
%Crop out region of interest
ROI_RGB{i} = imcrop(I1, bboxout(i,:));
end
end
You can access elements of cell array using brace indexing
ROI_RGB{1} % first element
ROI_RGB{2}
..
..
ROI_RGB{end}
  4 Comments
Joe Beard
Joe Beard on 3 May 2020
Thanks for the help Ameer. The updated code is now giving me the below error I dont really understand, I think I need to do some more research into cell arrays!
Ameer Hamza
Ameer Hamza on 3 May 2020
Edited: Ameer Hamza on 3 May 2020
ISoR is a cell array. To display an image, you need to use indexing
imshow(ISoR{1}) % display first image
imshow(ISoR{2})
..

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!