Multiple output images from function

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

 採用された回答

Ameer Hamza
Ameer Hamza 2020 年 5 月 2 日
編集済み: Ameer Hamza 2020 年 5 月 2 日

1 投票

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 件のコメント

Joe Beard
Joe Beard 2020 年 5 月 2 日
Thanks for the reply!
Tried adding this and getting the below error
I will debug in the morning haha
Ameer Hamza
Ameer Hamza 2020 年 5 月 2 日
I have updated the code. length() is actually an ambighious function. size() and numel() should be preferred over length().
Joe Beard
Joe Beard 2020 年 5 月 3 日
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 2020 年 5 月 3 日
編集済み: Ameer Hamza 2020 年 5 月 3 日
ISoR is a cell array. To display an image, you need to use indexing
imshow(ISoR{1}) % display first image
imshow(ISoR{2})
..

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2020 年 5 月 2 日

編集済み:

2020 年 5 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by