collectparts.m
来自「This code can parse any image in matlab.」· M 代码 · 共 36 行
M
36 行
function D = collectParts(D,objectname,partnamelist,HOMELABELMAPS)
Nimage = length(D);
D = LHIreplaceobjectname(D,':',' : ','replace');
searchstr1 = ['-',strrep(partnamelist,' ','-')];
searchstr1 = strrep(searchstr1,',','-');
searchstr1 = strrep(searchstr1,['-',objectname],'');
searchstr2 = strrep(partnamelist,' ','+');
searchstr2 = strrep(searchstr2,',',['+',objectname,',']);
searchstr2 = [searchstr2,'+',objectname];
for i=1:Nimage,
ind = LHIobjectindex(D(i).annotation, searchstr2,'word');
for j=1:length(ind)
jc = LHIobjectindex(D(i).annotation, strcat(objectname,searchstr1));
if length(jc) > 0
D(i).annotation.object(ind(j)).parts = []; %gives up parts if has
num = length(D(i).annotation.object(jc(1)).parts);
part = rmfield(D(i).annotation.object(ind(j)),'parts');
[foo, remain] = strtok(part.name,':');
part.name = remain(2:end);
if (num == 0)
D(i).annotation.object(jc(1)).parts = part;
else
D(i).annotation.object(jc(1)).parts(num+1) = part;
end
D(i).annotation = LHIMergeObjects(D(i).annotation,HOMELABELMAPS,jc(1),ind(j));
ind(ind > ind(j)) = ind(ind > ind(j)) - 1;
else %creates objects
part = rmfield(D(i).annotation.object(ind(j)),'parts');
[foo, remain] = strtok(part.name,':');
part.name = remain(2:end);
D(i).annotation.object(ind(j)).name = objectname;
D(i).annotation.object(ind(j)).parts = part;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?