-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbrl_identify_tip.m
More file actions
40 lines (32 loc) · 1.64 KB
/
brl_identify_tip.m
File metadata and controls
40 lines (32 loc) · 1.64 KB
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
function pipobjectStack = brl_identify_tip(binaryImage, parameters)
% © 2015 Allen Institute.
% This file is part of smartACT.
% smartACT is free software: you can redistribute it and/or modify it under
% the terms of the GNU General Public License as published by the Free
% Software Foundation, either version 3 of the License, or (at your option)
% any later version. smartACT is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
% General Public License for more details.
% You should have received a copy of the GNU General Public License along with smartACT.
% If not, see <http://www.gnu.org/licenses/>.
%
% This package is currently not maintained and no support is implied.
% Questions may be directed to Brian Long
% <brianl@alleninstitute.org> with 'smartACT' in the subject line.
%
% 2014.09.01 if there are no input parameters or the pipet COM doesn't reside in the object,
% just pick the largest object in the binary image
s3d = bwlabeln(binaryImage); % this assumes the pipet is a convex shape...
pipobj = s3d(parameters.coordinates3D(1), parameters.coordinates3D(2), parameters.coordinates3D(3));
if pipobj==0 % in suboptimal cases, (pipet is not convex)
% the centroid can lie outside of the binary object.
% if that's the case, pick the biggest object as the pipet
mass=[]
uregions = unique(s3d(s3d(:)>0))
for i = 1:numel(uregions)
mass=[mass; sum(s3d(:)==uregions(i))];
end
pipobj = uregions(mass==max(mass(:)))
end
pipobjectStack = s3d==pipobj;