How can i extract all labeled objects in a image and save every object as an image?

2 次查看(过去 30 天)
I have labeled 650 images in Image labeler. Now i want to save every object i have labeled as a 81X81 pixel image.How can i do that?

回答(1 个)

Daniel Vieira
Daniel Vieira 2020-2-21
with the image labeler you made a table where the first column is the image file, and the others are each label, each cell containing the bounding boxes of each object. So:
% T -> your table
for k=1:height(T)
I=imread(T.file{k}); % I don't quite remember it the variable is "file", change it to the name of your 1st variable
for h=2:width(T)
for z=1:size(T{k,h},1)
subI=imresize(imcrop(I,)T{k,h}(z,:),[81 81]);
writeimage(subI,"file "+k+" "+h+" "+z+".png") % change this string to something suitable to you
end
end
end
  3 个评论
Toni Vukasinovic
Toni Vukasinovic 2020-2-24
I have done the following as you segested.
for k=1:height(gTruth)
I=imread(gTruth.LabelData{k}); % I don't quite remember it the variable is "file", change it to the name of your 1st variable
for h=2:width(gTruth)
for z=1:size(gTruth{k,h},1)
subI=imresize(imcrop(I,),gTruth{k,h}(z,:),[81 81]);
writeimage(subI,"file "+k+" "+h+" "+z+".png") % change this string to something suitable to you
end
end
end
But I get the following error
subI=imresize(imcrop(I,),gTruth{k,h}(z,:),[81 81]);
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for
mismatched delimiters.
Daniel Vieira
Daniel Vieira 2020-2-26
gTruth here is not a table, it's a groundTruth object, that's why the code above doesn't work for you. You either need the Image Labeler App to export things in table format instead of gTruth (almost sure it does it), or you need to access the inner properties of gTruth, make a table, and work with it.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by