Changeset 931 for trunk/src/uvmat.m


Ignore:
Timestamp:
Mar 13, 2016, 6:29:07 PM (8 years ago)
Author:
sommeria
Message:

various

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/uvmat.m

    r924 r931  
    12731273RootPath=read_file_boxes(hhuvmat);
    12741274
    1275 OutPutDir=uigetfile_uvmat('choosean image folder to calibrate with slice position?',fileparts(RootPath),'uigetdir');
    1276 OutPut=browse_data(OutPutDir);
     1275OutPutDir=uigetfile_uvmat('choose an image folder to document with slice position?',fileparts(RootPath),'uigetdir');
     1276OutPut=browse_data(OutPutDir,'off','on');
    12771277nbcalib=0;
    12781278for ilist=1:numel(OutPut.Experiment)
    1279     SubDirBase=regexprep(OutPut.DataSeries{1},'\..+$','');
    1280     XmlFile=fullfile(OutPut.Campaign,OutPut.Experiment{ilist},[SubDirBase '.xml']);
    1281    
    1282     % read the current xml file
    1283     [s,errormsg]=imadoc2struct(XmlFile,'GeometryCalib');
    1284     if ~isempty(errormsg)
    1285         msgbox_uvmat('ERROR',['error in reading ' XmlFile ': ' errormsg])
    1286         return
    1287     end
    1288     GeometryCalib=s.GeometryCalib;
    1289     GeometryCalib.NbSlice=SliceData.NbSlice;
    1290     GeometryCalib.CheckVolumeScan=SliceData.CheckVolumeScan;
    1291     Z_plane=linspace(SliceData.Z(1),SliceData.Z(2),SliceData.NbSlice);
    1292     GeometryCalib.SliceCoord=Z_plane'*[0 0 1];
    1293     GeometryCalib.SliceAngle=zeros(GeometryCalib.NbSlice,3);
    1294     Angle_1=linspace(SliceData.SliceAngle_1(1),SliceData.SliceAngle_1(2),SliceData.NbSlice);
    1295     Angle_2=linspace(SliceData.SliceAngle_2(1),SliceData.SliceAngle_2(2),SliceData.NbSlice);
    1296     GeometryCalib.SliceAngle(:,1)=Angle_1';%rotation around x axis (to generalise)
    1297     GeometryCalib.SliceAngle(:,2)=Angle_2';%rotation around y axis (to generalise)
    1298     GeometryCalib.SliceAngle(:,3)=0;
    1299     if SliceData.CheckRefraction
    1300         GeometryCalib.InterfaceCoord=[0 0 SliceData.H];
    1301         GeometryCalib.RefractionIndex=SliceData.RefractionIndex;
    1302     elseif isfield(GeometryCalib,'RefractionIndex')
    1303         GeometryCalib=rmfield(GeometryCalib,'RefractionIndex');
    1304         GeometryCalib=rmfield(GeometryCalib,'InterfaceCoord');
    1305     end
    1306    
    1307     % update the current xml file
    1308     errormsg=update_imadoc(GeometryCalib,XmlFile,'GeometryCalib');% introduce the calibration data in the xml file
    1309     if ~strcmp(errormsg,'')
    1310         msgbox_uvmat('ERROR',errormsg);
    1311     else
    1312         display([XmlFile ' updated with slice positions'])
    1313         nbcalib=nbcalib+1;
     1279    for idevice=1:numel(OutPut.DataSeries)
     1280        SubDirBase=regexprep(OutPut.DataSeries{idevice},'\..+$','');
     1281        XmlFile=fullfile(OutPut.Campaign,OutPut.Experiment{ilist},[SubDirBase '.xml']);
     1282       
     1283        % read the current xml file
     1284        if  exist(XmlFile,'file')
     1285            [s,errormsg]=imadoc2struct(XmlFile,'GeometryCalib');
     1286            if ~isempty(errormsg)
     1287                msgbox_uvmat('ERROR',['error in reading ' XmlFile ': ' errormsg])
     1288                return
     1289            end
     1290            GeometryCalib=s.GeometryCalib;
     1291            GeometryCalib.NbSlice=SliceData.NbSlice;
     1292            GeometryCalib.CheckVolumeScan=SliceData.CheckVolumeScan;
     1293            Z_plane=linspace(SliceData.Z(1),SliceData.Z(2),SliceData.NbSlice);
     1294            GeometryCalib.SliceCoord=Z_plane'*[0 0 1];
     1295            GeometryCalib.SliceAngle=zeros(GeometryCalib.NbSlice,3);
     1296            Angle_1=linspace(SliceData.SliceAngle_1(1),SliceData.SliceAngle_1(2),SliceData.NbSlice);
     1297            Angle_2=linspace(SliceData.SliceAngle_2(1),SliceData.SliceAngle_2(2),SliceData.NbSlice);
     1298            GeometryCalib.SliceAngle(:,1)=Angle_1';%rotation around x axis (to generalise)
     1299            GeometryCalib.SliceAngle(:,2)=Angle_2';%rotation around y axis (to generalise)
     1300            GeometryCalib.SliceAngle(:,3)=0;
     1301            if SliceData.CheckRefraction
     1302                GeometryCalib.InterfaceCoord=[0 0 SliceData.H];
     1303                GeometryCalib.RefractionIndex=SliceData.RefractionIndex;
     1304            elseif isfield(GeometryCalib,'RefractionIndex')
     1305                GeometryCalib=rmfield(GeometryCalib,'RefractionIndex');
     1306                GeometryCalib=rmfield(GeometryCalib,'InterfaceCoord');
     1307            end
     1308           
     1309            % update the current xml file
     1310            errormsg=update_imadoc(GeometryCalib,XmlFile,'GeometryCalib');% introduce the calibration data in the xml file
     1311            if ~strcmp(errormsg,'')
     1312                msgbox_uvmat('ERROR',errormsg);
     1313            else
     1314                display([XmlFile ' updated with slice positions'])
     1315                nbcalib=nbcalib+1;
     1316            end
     1317        end
    13141318    end
    13151319end
Note: See TracChangeset for help on using the changeset viewer.