221 lines
8.1 KiB
Matlab
Executable File
221 lines
8.1 KiB
Matlab
Executable File
function EZspotview(expN,DexpN, imLoc,OLresDir,OLplateNum,NoOLay)
|
|
global Exp
|
|
global ghandles
|
|
datacursormode(gcf)
|
|
|
|
w=pwd;
|
|
aCnt=0;
|
|
prevExp=0;
|
|
if NoOLay==0
|
|
cd(fullfile(char(OLresDir)))
|
|
cd ..
|
|
expDir=pwd;
|
|
cd(w)
|
|
|
|
%expDir=fullfile(char(OLresDir),'..');
|
|
if ~isequal(expDir, char(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr)))
|
|
prevExp=1;
|
|
end
|
|
if prevExp==0
|
|
expDir=Exp(expN).Dexp(DexpN).ExpFoldr;
|
|
else
|
|
cd(fullfile(char(OLresDir)))
|
|
cd ..
|
|
expDir=pwd;
|
|
cd(w)
|
|
%expDir=fullfile(char(OLresDir),'..');
|
|
end
|
|
else
|
|
expDir=Exp(expN).Dexp(DexpN).ExpFoldr
|
|
end
|
|
|
|
%ExpHmDir=char(Exp(expN).Dexp(DexpN).resDir);
|
|
|
|
try close(ghandles.hfstrip), catch, end % hfIm
|
|
% CIRCLE related
|
|
doCircle=1;
|
|
radius=14;
|
|
diaExt=2*(radius+1);
|
|
EZvNIcircle
|
|
rIm=imLoc(1); % use the "picture/Image' r and c not the plate annotation r c)
|
|
cIm=imLoc(2);
|
|
plateNum=Exp(expN).Dexp(DexpN).plateNum;
|
|
if prevExp==0
|
|
FexpScanSpots=Exp(expN).Dexp(DexpN).FexpScanSpots;
|
|
FexpScanBMtp=Exp(expN).Dexp(DexpN).FexpScanBMtp;
|
|
anlZoneRefs=Exp(expN).Dexp(DexpN).anlZoneRefs;
|
|
ImParMat=Exp(expN).Dexp(DexpN).ImParMat;
|
|
else
|
|
% check if the request expJob is already loaded in one of the other zones
|
|
matchfound=0;
|
|
for j=1:3
|
|
if isequal(expDir, char(fullfile(Exp(j).ExpFoldr)))
|
|
FexpScanSpots=Exp(j).FexpScanSpots;
|
|
FexpScanBMtp=Exp(j).FexpScanBMtp;
|
|
anlZoneRefs=Exp(j).anlZoneRefs;
|
|
ImParMat=Exp(j).ImParMat;
|
|
matchfound=1;
|
|
break
|
|
end
|
|
end
|
|
if matchfound==0
|
|
% if not, load data for previous experiment again.
|
|
load(fullfile(char(OLresDir),'Fotos','Coordinates'))
|
|
load(fullfile(char(OLresDir),'Fotos','anlZones'))
|
|
load(fullfile(char(OLresDir),'Fotos','BGatTpts'))
|
|
load(fullfile(char(OLresDir),'PTmats','NImParameters'))
|
|
end
|
|
end
|
|
|
|
% Parameter Entry
|
|
width=ImParMat(5);
|
|
widthEx=width-1; %width extention from reference point
|
|
|
|
% Start Spot selection and Manipulation section
|
|
Fcutsc=[];
|
|
Fstrip=[];
|
|
%{
|
|
cd(fullfile(char(OLresDir)))
|
|
cd ..
|
|
expDir=pwd;
|
|
cd(w)
|
|
%}
|
|
|
|
% tPtsSize=size(Exp(expN).Dexp(DexpN).FexpScanBMtp{1,1},(3));
|
|
tPtsSize=size(FexpScanBMtp{1,plateNum},(3)); % tPtsSize=size(FexpScanBMtp{1,1},(3)); 20160110
|
|
%bmpFileLst=dirfullfile(char(OLresDir),num2str(plateNum),'*.bmp')); %(fullfile(expDir, char(ScLst(ScLstCnt)), '*.bmp'));
|
|
hsafety=figure;
|
|
dc=get(datacursormode)
|
|
imInterval=1;
|
|
try,imInterval=str2double(Exp(4).SpotVintervPar),catch,end
|
|
try
|
|
for tPt=1:imInterval:tPtsSize %tPtLength
|
|
coord=[];
|
|
try
|
|
% FtifFile=fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum),strcat(num2str(tPt),'.bmp')); %char(tifFileLst(tPt));
|
|
FtifFile=fullfile(char(expDir),num2str(plateNum),strcat(num2str(tPt),'.bmp'));
|
|
Fimg=imread(FtifFile);
|
|
% For Visualization Purposes
|
|
Fram=ones(2075,1400); %(size(Empsc,1),size(Empsc,2));
|
|
% FRAME ANALYSIS AREA
|
|
if size(FexpScanSpots,2)>1
|
|
coord=FexpScanSpots{plateNum}{rIm,cIm,tPt};
|
|
else
|
|
coord=FexpScanSpots{plateNum,1,1}{rIm,cIm,tPt};
|
|
end
|
|
if size(anlZoneRefs,2)>1
|
|
xyLoc=anlZoneRefs{plateNum}{rIm,cIm,tPt}; %F_Snum
|
|
else
|
|
xyLoc=anlZoneRefs{F_Snum,1,1}{rIm,cIm,tPt};
|
|
end
|
|
xLoc=xyLoc(2);
|
|
yLoc=xyLoc(1);
|
|
|
|
% CIRCLE related
|
|
doCircle=1; % temp test value insertion to get square images
|
|
if doCircle==1
|
|
Fram=FoptCirMask;
|
|
else
|
|
% 1->2 across rt 1, 2-4
|
|
Fram(yLoc,xLoc:(xLoc+widthEx))=0.8;
|
|
% 1->4 down lf 1-3, 2
|
|
Fram((yLoc+1):(yLoc+1+widthEx),xLoc)=0.8;
|
|
% 2->3 down rt 1-3, 4
|
|
Fram(yLoc:(yLoc+widthEx),(xLoc+1+widthEx))=0.8;
|
|
% 4->3 Bot Across rt 1, 2-4
|
|
Fram((yLoc+1+widthEx),(xLoc+1):(xLoc+1+widthEx))=0.8;
|
|
Fram=Fram(coord(1):coord(3),coord(2):coord(4));
|
|
end
|
|
% Cut Spot Out Of Image
|
|
% Fbg=FexpScanBMtp{selScan,1}(rIm,cIm,tPt);
|
|
Fbg=FexpScanBMtp{plateNum}(rIm,cIm,tPt); %{selScan,1}
|
|
% Fimg=imread(FtifFile); %,'PixelRegion', {[coord(1),coord(3)],[coord(2),coord(4)]});
|
|
Fcutsc=Fimg(coord(1):coord(3),coord(2):coord(4));
|
|
if doCircle==1
|
|
%varExt=size(Fcutsc)-size(Fram);
|
|
varExtPre=[((yLoc-0)-coord(1)) ((xLoc-0)-coord(2))];
|
|
varExtPost=[(coord(3)-(yLoc+diaExt+1)) (coord(4)-(xLoc+diaExt+1))];
|
|
% Fram=padarray(Fram,[expansion expansion],1,'pre');
|
|
Fram=padarray(Fram,[varExtPre],1,'pre');
|
|
Fram=padarray(Fram,[varExtPost],1,'post');
|
|
% Fram=padarray(Fram,rem(varExt,2),1,'post');
|
|
%Fram=padarray(Fram,floor((varExt-2)./2),1);
|
|
end
|
|
% Invert Image
|
|
Fcutsc=double(Fcutsc) .* Fram;
|
|
%Fcutsc=Fcutsc .* uint8(Fram);
|
|
Fcutsc=uint8(Fcutsc);
|
|
%Fcutsc=255 - (Fcutsc-Fbg);
|
|
Fcutsc=(Fcutsc-Fbg);
|
|
%Time series annotation**************************
|
|
tmPtTx=[];
|
|
tenths=(round(10*(Exp(expN).Dexp(DexpN).scan(plateNum).plate(1).tSeries(tPt)))) ./10;
|
|
tmPtTx=strcat(num2str(tenths),'h');
|
|
|
|
% imwrite(Fcutsc,(fullfile(resDir,'Fotos',strcat('FScan',num2str(selScan),'_timePt-',num2str(tPt),'.jpg'))),'jpg');
|
|
aCnt=aCnt+1;
|
|
if aCnt==1 %||tPt==1
|
|
EZvapendLabel
|
|
Fstrip=vertcat(Fcutsc,Bspace);
|
|
Hspace=zeros(size(Fstrip,1),4)+1200; %+255
|
|
Fstrip=horzcat(Fstrip,Hspace);
|
|
end
|
|
makeVis=1;
|
|
if aCnt>1
|
|
EZvapendLabel
|
|
vcat=vertcat(Fcutsc,Bspace);
|
|
%Hspace=zeros(size(Fstrip,1),4)+255;
|
|
Fstrip=horzcat(Fstrip,vcat,Hspace);
|
|
end
|
|
|
|
% For Visualization Purposes only
|
|
if makeVis==1
|
|
% if aCnt==1,figure;end
|
|
% resIm=uint8((double(BGsc) + OptmapOnesDbl) .* double(fullsc));
|
|
% clear('OptmapOnesDbl')
|
|
hfstrip=imagesc(Fcutsc); colormap(gray); %hfstrip=imshow(Fcutsc); colormap(gray); %hfscanIm=imagesc(Fcutsc); colormap(gray);
|
|
ghandles.hfstrip=gcf;
|
|
haxis=gca;
|
|
title(strcat('Scan',num2str(plateNum),'->timePt-',num2str(tPt)));
|
|
clf(hfstrip,'reset'); colormap(gray); %clf(hfscanIm,'reset'); colormap(gray);
|
|
set(ghandles.hfstrip,'NumberTitle','off')
|
|
end
|
|
expLabel=strcat('->',char(fullfile(char(OLresDir),num2str(OLplateNum))))
|
|
% catch
|
|
% expLabel=strcat('->',char(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum))))
|
|
if expN==1
|
|
set(ghandles.hfstrip,'Name', strcat(char(get(ghandles.OLay1,'string')),expLabel)) %ghandles.hfIm %{'ExpOutmat'} %strcat('EASYconsole- ',char(resDir)))
|
|
elseif expN==2
|
|
set(ghandles.hfstrip,'Name', strcat(char(get(ghandles.OLay2,'string')),expLabel))
|
|
elseif expN==3
|
|
set(ghandles.hfstrip,'Name', strcat(char(get(ghandles.OLay3,'string')),expLabel))
|
|
end
|
|
%hgsave(fullfile(resDir,'Fotos',strcat('FScan',num2str(selScan),'_timePt-',num2str(tPt))));
|
|
catch
|
|
end
|
|
end
|
|
catch
|
|
end
|
|
|
|
%figure(ghandles.hFstrip)
|
|
imshow(Fstrip);
|
|
%{
|
|
%if tPt==tPtLength %length(tifFileLst)
|
|
%imwrite(Fstrip,(fullfile(resDir,'Fotos',strcat('Fstrip','S',num2str(selScan),'P',num2str(F_Pnum),'r',num2str(F_Rusrnum),'c',num2str(F_Cusrnum),'.jpg'))),'jpg');
|
|
F_name=strcat(fnamemod,'_Fstrip','.jpg');
|
|
%dfname=(fullfile(resDir,'Fotos',char(F_name)));
|
|
%delete(dfname); % imwrite nolonger overwrites ??why 14_0729
|
|
imwrite(Fstrip,(fullfile(resDir,'Fotos',char(F_name))),'jpg','Quality',100);
|
|
F_name=strcat(fnamemod,'_Fstrip','.tif');
|
|
%dfname=(fullfile(resDir,'Fotos',char(F_name)));
|
|
%delete(dfname); % imwrite nolonger overwrites ??why
|
|
imwrite(Fstrip,(fullfile(resDir,'Fotos',char(F_name))),'tif');
|
|
%end
|
|
%}
|
|
%[output_txt]=datatipp(obj,event_obj);
|
|
%datacursormode off;
|
|
%datacursormode on;
|
|
%close(figure(hsafety))
|
|
end
|
|
|