From 160944869c3c493545bb96dec7a5062939f267e7 Mon Sep 17 00:00:00 2001 From: ac <andrew.r.cohen@drexel.edu> Date: Thu, 8 Aug 2024 12:59:17 -0400 Subject: [PATCH] plate,blob updates --- src/MATLAB/+RSF/getImf.asv | 86 ----------------------------------- src/MATLAB/+RSF/getImf.m | 2 +- src/MATLAB/+RSF/quantize8.asv | 18 -------- src/MATLAB/metadata/goLR.m | 20 ++++---- 4 files changed, 13 insertions(+), 113 deletions(-) delete mode 100644 src/MATLAB/+RSF/getImf.asv delete mode 100644 src/MATLAB/+RSF/quantize8.asv diff --git a/src/MATLAB/+RSF/getImf.asv b/src/MATLAB/+RSF/getImf.asv deleted file mode 100644 index e7d53f7..0000000 --- a/src/MATLAB/+RSF/getImf.asv +++ /dev/null @@ -1,86 +0,0 @@ -function imf = getImf(pData,radii,scanType) - -% radii is 1-element or 3-element cell array. [0,0,0] for unused channel -% FLIF takes 1 or 3 UBYTE -radii = {[0.5,8,8],[5,5,5],[10,10,10]}; % plate,blob - -% NGPU = HIP.Cuda.DeviceCount; -% p = ljsStartParallel(8*NGPU); - -N_CUDA_PROCS = 48; -startTarget = 1; -imf = {}; -im1 = Composite(); -pp = Composite(); -while startTarget <= size(pData,1) - spmd - pp = spmdIndex - 1 + startTarget; - if spmdIndex <= N_CUDA_PROCS && pp <= size(pData,1) - strDB = fullfile(pData.folder{pp},pData.filename{pp}); - [im] = SSF.loadImage(strDB,1); - % 3-channel plate,blob,0 - for c = 1:length(radii) - if all(0==radii{c}) - im1(:,:,:,c) = zeros(size(im)); - else - im1(:,:,:,c) = RSF.imPreProcess(im,radii{c}); - end - end - end - startTarget = startTarget + N_CUDA_PROCS; - for i = 1:N_CUDA_PROCS - if pp{i} <= size(pData,1) - imf{pp{i}} = im1{i}; - end - end -end - -px = {}; % critical voxels -mx = []; % mean by stack -sx = []; % sigma by stack -for i = 1 : length(imf) - for c = 1:size(imf{i},4) - i1 = imf{i}(:,:,:,c); - px{i,c} = i1(find(i1)); - mx(i,c) = mean(px{i,c}); - sx(i,c) = std(px{i,c}); - end -end - -% clipRange = [2.5,97.5]; -clipRange = [0.5,99.5]; -for c = 1:size(imf{1},4) - p1 = vertcat(px{:,c}); - px_pos = p1(p1>0); - px_neg = abs(p1(p1<0)); - - clip_pos(c,:) = prctile(px_pos,clipRange); - clip_neg(c,:) = prctile(px_neg,clipRange); -end -4; -for i = 1:length(imf) - for c = 1 : size(imf{i},4) - if all(0==imf{i}(:,:,c)) - continue - end - imp = imf{i}(:,:,:,c); - imp(imp<0)=0; - imn = imf{i}(:,:,:,c); - imn(imn>0)=0; - imn=abs(imn); - imq_pos = SSF.quantize8(imp,clip_pos(c,:)); - imq_neg = SSF.quantize8(imn,clip_neg(c,:)); - if all(0==imq_pos) - imf{i}(:,:,:,c) = imq_neg; - else - % [0,127] for imq_neg, [128,255] imq_pos - imq_pos = (0.5 .* imq_pos) + uint8(128 .* (imq_pos>0)); - imq_neg = 0.5 .* imq_neg ; - imf{i}(:,:,:,c) = (imq_neg + imq_pos); - end - - end - - imf{i} = uint8(imf{i}); -end -4; diff --git a/src/MATLAB/+RSF/getImf.m b/src/MATLAB/+RSF/getImf.m index 67e2384..3d04658 100644 --- a/src/MATLAB/+RSF/getImf.m +++ b/src/MATLAB/+RSF/getImf.m @@ -2,7 +2,7 @@ function imf = getImf(pData,radii,scanType) % radii is 1-element or 3-element cell array. [0,0,0] for unused channel % FLIF takes 1 or 3 UBYTE -radii = {[0.5,8,8],[5,5,5],[10,10,10]}; % plate,blob +radii = {[0.5,8,8],[5,5,5],[0,0,0]}; % plate,blob % radii = {[0.5,8,8]}; % plate % NGPU = HIP.Cuda.DeviceCount; diff --git a/src/MATLAB/+RSF/quantize8.asv b/src/MATLAB/+RSF/quantize8.asv deleted file mode 100644 index f7c98e1..0000000 --- a/src/MATLAB/+RSF/quantize8.asv +++ /dev/null @@ -1,18 +0,0 @@ -% clipLimits = [minVal,maxVal]; -function [im, clipLimits] = quantize8(i1,i2) - -if isa(i1,'uint8') && isa(i2,'uint8') - return -end - -pix = [i1(find(i1)),i2(find(i2))]; -% clip at 99.9% -clipLimits = prctile(pix,[0.05,99.95]); - -im = max(im,clipLimits(1)); -im = min(im,clipLimits(end)); -im = (im - clipLimits(1)) ./ (clipLimits(end) - clipLimits(1)); -im = im2uint8(im); -im(0 == im_in) = 0; -4; - diff --git a/src/MATLAB/metadata/goLR.m b/src/MATLAB/metadata/goLR.m index 5672154..317a5b0 100644 --- a/src/MATLAB/metadata/goLR.m +++ b/src/MATLAB/metadata/goLR.m @@ -34,16 +34,20 @@ tD = tblMeta(strcmp(tblMeta.eye,'OS'),:); t1 = tS; t2 = tD; -% tO = tblMeta(contains(tblMeta.scanType,'Optic'),:); -% tM = tblMeta(contains(tblMeta.scanType,'Macular'),:); -% t3 = tO; -% t4 = tM; +tO = tblMeta(contains(tblMeta.scanType,'Optic'),:); +tM = tblMeta(contains(tblMeta.scanType,'Macular'),:); +t3 = tO; +t4 = tM; clf;hold on plot3(t1.Y(:,1),t1.Y(:,2),t1.Y(:,3),'r*') plot3(t2.Y(:,1),t2.Y(:,2),t2.Y(:,3),'og') - -% plot3(t3.Y(:,1),t3.Y(:,2),t3.Y(:,3),'mx') -% plot3(t4.Y(:,1),t4.Y(:,2),t4.Y(:,3),'cs') - +legend({'OS','OD'}) +xlabel('NCD1') +ylabel('NCD2') +zlabel('NCD3') + +plot3(t3.Y(:,1),t3.Y(:,2),t3.Y(:,3),'mx') +plot3(t4.Y(:,1),t4.Y(:,2),t4.Y(:,3),'cs') +legend({'ONH','macula'}) toc \ No newline at end of file -- GitLab