Files

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