Multiple output images from function

3 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Ameer Hamza
Ameer Hamza il 2 Mag 2020
Modificato: Ameer Hamza il 2 Mag 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 Commenti
Joe Beard
Joe Beard il 3 Mag 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 il 3 Mag 2020
Modificato: Ameer Hamza il 3 Mag 2020
ISoR is a cell array. To display an image, you need to use indexing
imshow(ISoR{1}) % display first image
imshow(ISoR{2})
..

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by