Skip to content

Commit

Permalink
auto spatialr and se detect function
Browse files Browse the repository at this point in the history
  • Loading branch information
JinghaoLu committed Mar 25, 2022
1 parent e210363 commit ce0e1f1
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 13 deletions.
12 changes: 7 additions & 5 deletions min1pipe.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,20 @@
min1pipe_init;

%% initialize parameters %%
defpar = default_parameters;
if nargin < 1 || isempty(Fsi)
defpar = default_parameters;
Fsi = defpar.Fsi;
end

if nargin < 2 || isempty(Fsi_new)
defpar = default_parameters;
Fsi_new = defpar.Fsi_new;
end

if nargin < 3 || isempty(spatialr)
defpar = default_parameters;
spatialr = defpar.spatialr;
end

if nargin < 4 || isempty(se)
defpar = default_parameters;
se = defpar.neuron_size;
end

Expand Down Expand Up @@ -69,7 +66,12 @@

hpipe = tic;
for i = 1: length(file_base)

%%% auto-detect/adjust parameters %%%
fname = [path_name, file_base{i}, '.', file_fmt{i}];
[se, spatialr] = frame_sample(fname);
Params.neuron_size = se;
Params.spatialr = spatialr;

%%% judge whether do the processing %%%
filecur = [path_name, file_base{i}, '_data_processed.mat'];
msg = 'Redo the analysis? (y/n)';
Expand Down
14 changes: 6 additions & 8 deletions min1pipe_HPC.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,20 @@
min1pipe_init;

%% initialize parameters %%
defpar = default_parameters;
if nargin < 1 || isempty(Fsi)
defpar = default_parameters;
Fsi = defpar.Fsi;
end

if nargin < 2 || isempty(Fsi_new)
defpar = default_parameters;
Fsi_new = defpar.Fsi_new;
end

if nargin < 3 || isempty(spatialr)
defpar = default_parameters;
spatialr = defpar.spatialr;
end

if nargin < 4 || isempty(se)
defpar = default_parameters;
se = defpar.neuron_size;
end

Expand All @@ -38,10 +35,6 @@
flag = 1;
end

if nargin < 7 || isempty(flag)
[file_name, path_name] = uigetfile('*', 'Select coordinates file', 'MultiSelect', 'on');
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%% parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% user defined parameters %%% %%%
Expand Down Expand Up @@ -73,6 +66,11 @@

hpipe = tic;
for i = 1: length(file_base)
%%% auto-detect/adjust parameters %%%
fname = [path_name, file_base{i}, '.', file_fmt{i}];
[se, spatialr] = frame_sample(fname);
Params.neuron_size = se;
Params.spatialr = spatialr;

%%% judge whether do the processing %%%
filecur = [path_name, file_base{i}, '_data_processed.mat'];
Expand Down
18 changes: 18 additions & 0 deletions utilities/elements/auto_detect_params.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
function s = auto_detect_params(a)
aa = a - imgaussfilt(a, min(size(a)) / 5);
aa = max(mean(aa(:)), aa);
aaa = imgaussfilt(aa,2);
scl = 5;
b = sort(aaa(:))';
bb = b - scl * linspace(min(aaa(:)), max(aaa(:)), numel(aaa));
[~, id] = min(bb);
thres = b(id);
bbb = imopen(aaa > thres, strel('disk', 2));
[l, n] = bwlabeln(bbb);
s = zeros(1, n);
for i = 1: n
tmp = l == i;
st = sum(tmp(:));
s(i) = sqrt(st / pi);
end
end
21 changes: 21 additions & 0 deletions utilities/elements/frame_sample.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
function [se, spatialr] = frame_sample(m)
f = imfinfo(m);
n = length(f);
nu = min(100, n);
s = cell(1, nu);
id = randsample(n, nu);
for i = 1: nu
tmp = double(imread(m, id(i)));
st = auto_detect_params(tmp);
s{i} = st;
end
s = cell2mat(s);
sf = floor(mean(s));
if sf > 6
spatialr = 3 / sf;
se = 5;
else
spatialr = 1;
se = sf;
end
end

0 comments on commit ce0e1f1

Please sign in to comment.