-
Notifications
You must be signed in to change notification settings - Fork 0
/
testSkel.m
105 lines (87 loc) · 2.34 KB
/
testSkel.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
function testSkel(flag)
%%
close all;
if flag==2
bw=imread('../data/test/129-12.bw.png');
nameStr='Neuron';
elseif flag==1
bw=imread('../data/test/2575 DIC115.bw.png');
nameStr='Pollen';
end
% grayOri=getGrayImg(img);
if flag==2 || flag==1
tic;
thinRes=bwmorph(bw,'thin',inf);
t1=toc;
plotRes(bw,thinRes);
saveas(gca,['thinRes' nameStr '.eps'],'epsc');
tic;
skelRes=bwmorph(bw,'skel',inf);
t2=toc;
plotRes(bw, skelRes);
saveas(gca,['skelRes' nameStr '.eps'],'epsc');
addpath(genpath('BaiSkeletonPruningDCE/'));
tic;
baiRes=div_skeleton_new(4,1,1-bw,13);
t3=toc;
baiRes=baiRes~=0;
plotRes(bw,baiRes);
saveas(gca,['baiRes' nameStr '.eps'],'epsc');
figure, bar([t1 t2 t3]);
xlabel('Methods');
ylabel('Time (s)');
set(gca,'xticklabel',{'Thinning','MA','Bai''s method'});
saveas(gca,['skelTime' nameStr '.eps'],'epsc');
return;
end
%% Skel with or W/O ISAT.
close all;
if flag==4
bwISAT=imread('../data/test/129-12.bw.png');
skelResISAT=bwmorph(bwISAT,'thin',inf);
img=imread('../data/test/129-12.cut.png');
bw=img(:,:,2)>66;
bw=keepLargest(bw);
bw=imopen(bw,strel('disk',1));
bw=imclose(bw,strel('disk',5));
bw=imfill(bw,'holes');
skelRes=bwmorph(bw,'thin',inf);
nameStr='Neuron';
elseif flag==3
bwISAT=imread('../data/test/2575 DIC115.bw.png');
addpath(genpath('BaiSkeletonPruningDCE/'));
skelResISAT=div_skeleton_new(4,1,1-bwISAT,13);
skelResISAT=skelResISAT~=0;
img=imread('../data/test/2575 DIC115.cut.png');
bw=img(:,:,2)>45;
bw=keepLargest(bw);
bw=imopen(bw,strel('disk',1));
bw=imclose(bw,strel('disk',5));
bw=imfill(bw,'holes');
skelRes=div_skeleton_new(4,1,1-bw,13);
skelRes=skelRes~=0;
figure,imshow(skelRes);
% skelRes=bwmorph(bw,'skel',inf);
% figure,imshow(skelRes);
nameStr='Pollen';
end
figure,imshow(bwISAT);
saveas(gca,['ISATBw' nameStr '.eps'],'epsc');
figure,imshow(bw);
saveas(gca,['noISATBw' nameStr '.eps'],'epsc');
plotRes(img,skelRes);
saveas(gca,['noISATRes' nameStr '.eps'],'epsc');
plotRes(img,skelResISAT);
saveas(gca,['ISATRes' nameStr '.eps'],'epsc');
end
function plotRes(bw,res)
% rgbImg=zeros(size(bw,1),size(bw,2),3);
% rgbImg=putBwlineOnRgb(rgbImg,bw,[255 255 255]);
% figure,imshow(putBwlineOnRgb(rgbImg,skelRes,[255 0 0]));
figure,imshow(bw);
hold on;
inds=find(res);
[c d]=ind2sub(size(bw),inds);
plot(d,c,'.r');
hold off;
end