diff --git a/matlab/+SSF/channel_distances.m b/matlab/+SSF/channel_distances.m index 557fc9d3b94ba8a5b3919a1f3045c8517b01099d..47ac27e1f47cf80ad03f44a9b5381ee8077d39b1 100644 --- a/matlab/+SSF/channel_distances.m +++ b/matlab/+SSF/channel_distances.m @@ -15,8 +15,8 @@ parfor ff = 1:length(flist) nr = table(); strDB = fullfile(flist(ff).folder,flist(ff).name); - im1 = leversc.loadImage(strDB,1,channel1); - im2= leversc.loadImage(strDB,1,channel2); + im1 = SSF.loadImage(strDB,channel1); + im2= SSF.loadImage(strDB,channel2); im1 = SSF.quantize8(im1,clipLimits{ff,1}); im2 = SSF.quantize8(im2,clipLimits{ff,2}); diff --git a/matlab/+SSF/getClipLimits.m b/matlab/+SSF/getClipLimits.m index 65359c1fc2d115be1369b522e2bac40ccc8d417e..bd65dfe1c5ce2351f25f990310bbf67be1197a34 100644 --- a/matlab/+SSF/getClipLimits.m +++ b/matlab/+SSF/getClipLimits.m @@ -32,6 +32,8 @@ kymoPixels = vertcat(kymoPixels{:}); for c = 1:size(kymoPixels,2) kp = kymoPixels(:,c); kp = kp{:}; +% clipLimits{c} = quantile(kp,1/255:1/255:1-1/255); +% clipLimits{c} = prctile(kp,linspace(0,100,254)); if all(kp>0) || all(kp<0) cx = SSF.getClipQuantiles(kp,254); else diff --git a/matlab/+SSF/getClipQuantiles.m b/matlab/+SSF/getClipQuantiles.m index 377956572e9e169ba8cfce7d2ebbf9409c76caa6..6e1267c3932970dffde7b2b76430743ab25f12e5 100644 --- a/matlab/+SSF/getClipQuantiles.m +++ b/matlab/+SSF/getClipQuantiles.m @@ -1,12 +1,33 @@ function clipLimits = getClipQuantiles(voxels,nQuant) -mx = mean(voxels); -sx = std(voxels); -cl = [mx-sx, mx+sx]; -q1 = length(find(voxels<cl(1)))./length(voxels); -q2 = 1 - length(find(voxels>cl(2)))./length(voxels); -pxTarget = linspace(q1,q2,nQuant); -clipLimits = quantile(voxels,pxTarget); +% mx = mean(voxels); +% sx = std(voxels); +% cl = [mx-sx, mx+sx]; +% q1 = length(find(voxels<cl(1)))./length(voxels); +% q2 = 1 - length(find(voxels>cl(2)))./length(voxels); +% pxTarget = linspace(q1,q2,nQuant); +% clipLimits = quantile(voxels,pxTarget); +% clipLimits = linspace(min(voxels),max(voxels),nQuant+2); +% clipLimits = clipLimits(2:end-1); % pxTarget = linspace(2.5,97.5,nQuant); % clipLimits = prctile(voxels,pxTarget); +% +% if max(voxels)<0 +% pxTarget = linspace(2.5,100,nQuant); +% else +% pxTarget = linspace(0,97.5,nQuant); +% end +% clipLimits = prctile(voxels,pxTarget); + +% clipLimits = multithresh(voxels,20); +[~ , clipLimits] = histcounts(voxels); +if length(clipLimits>nQuant) + h = histogram(voxels,'Visible','off'); + while length(h.BinEdges)>nQuant + N = fewerbins(h); + h = histogram(voxels,N,'Visible','off'); + end + clipLimits = h.BinEdges; +end +4;