123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- 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
|