-
Notifications
You must be signed in to change notification settings - Fork 0
/
decreasingpartsize_withcontext.m
66 lines (66 loc) · 1.75 KB
/
decreasingpartsize_withcontext.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
function decreasingpartsize_withcontext
cat='cat';
di=sprintf('./myoutput1/%s/*.mat',cat);
d=dir(di);
num_annot=length(d);
mkdir('tobefed',cat);
for i=1:num_annot
name=d(i).name;
u=sprintf('./myoutput1/%s/%s',cat,name);
load(u);
[rrv,ccv]=find(s.mask);
l2=s.mask(min(rrv):max(rrv),min(ccv):max(ccv));
[h,w]=size(l2);
l3=ones(h,w);
left_over=l3-l2;
imname=name(1:length(name)-4);
u1=sprintf('./inputimages/%s/%s.png',cat,imname);
img=imread(u1);
part=s.parts;
s1=sprintf('tobefed/%s',cat);
mkdir(s1,imname);
s2=sprintf('tobefed/%s/%s',cat,imname);
mkdir(s2,'decsize');
s3=sprintf('tobefed/%s/%s/%s',cat,imname,'decsize');
mkdir(s3,'with_context');
size1=zeros(length(part),1);
for j=1:length(part)
m=part(j).mask;
p=regionprops(m==1,'Area');
size1(j)=p.Area;
end
part_mask=left_over;
s4=sprintf('tobefed/%s/%s/%s/with_context/%d.png',cat,imname,'decsize',1);
L=1.*part_mask;
l1=repmat(L,1,1,3);
l1=uint8(l1);
k=img.*l1;
imwrite(k,s4);
[b,I]=sort(size1,'descend');
for j=1:length(part)
name=part(I(j)).partname;
part_mask=part_mask+part(I(j)).mask;
for k=1:h
for l=1:w
if(part_mask(k,l)~=0)
part_mask(k,l)=1;
end
end
end
A=1.*part_mask;
a=repmat(A,1,1,3);
a=uint8(a);
i1=img.*a;
s4=sprintf('tobefed/%s/%s/%s/with_context/%d.png',cat,imname,'decsize',j+1);
% imshow(i1);
imwrite(i1,s4);
end
L=1.*l2;
l1=repmat(L,1,1,3);
l1=uint8(l1);
k=img.*l1;
%imshow(k);
s4=sprintf('tobefed/%s/%s/%s/with_context/%d.png',cat,imname,'decsize',j+2);
imwrite(k,s4);
end
end