Home > functions > common > loadfunc > vb_load_orig_brain_surf.m

vb_load_orig_brain_surf

PURPOSE ^

Load BrainVoyager/FreeSurfer files

SYNOPSIS ^

function [V0L,F0L,n0L,V0R,F0R,n0R] = vb_load_orig_brain_surf(brain_parm);

DESCRIPTION ^

 Load BrainVoyager/FreeSurfer files
   [VL,FL,nL,VR,FR,nR] = vb_load_orig_brain_surf(brain_parm)

--- Input

 brain_parm        : structure with following field
  (used for BrainVoyager files)
    .BV_left_file   : Brain-Voyager left  surface file
    .BV_right_file  : Brain-Voyager right surface file

  (used for FreeSurfer files)
    .FS_left_file   : FreeSurfer left surface file
    .FS_right_file  : FreeSurfer right surface file
    .FS_xfm_file    : Talairach transformation file
 
--- Output
 VL/R  Left/Right Brain-Voyager (FreeSurfer) vertex coordinate
 FL/R  triangle patch
 nL/R  normal unit vector (Outward)
 
 --- Coordinate is Right-hand SPM coordinate
 X: Left(-191/2)   -> Right(191/2) 
 Y: Back(-256/2)   -> Front(256/2)
 Z: Bottom(-256/2) -> Top(256/2) 

 [history]
 M. Sato  2006-7-21
 2010-05-28 Taku Yoshioka
  Minor change (verbose level support)

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [V0L,F0L,n0L,V0R,F0R,n0R] = vb_load_orig_brain_surf(brain_parm);
0002 % Load BrainVoyager/FreeSurfer files
0003 %   [VL,FL,nL,VR,FR,nR] = vb_load_orig_brain_surf(brain_parm)
0004 %
0005 %--- Input
0006 %
0007 % brain_parm        : structure with following field
0008 %  (used for BrainVoyager files)
0009 %    .BV_left_file   : Brain-Voyager left  surface file
0010 %    .BV_right_file  : Brain-Voyager right surface file
0011 %
0012 %  (used for FreeSurfer files)
0013 %    .FS_left_file   : FreeSurfer left surface file
0014 %    .FS_right_file  : FreeSurfer right surface file
0015 %    .FS_xfm_file    : Talairach transformation file
0016 %
0017 %--- Output
0018 % VL/R  Left/Right Brain-Voyager (FreeSurfer) vertex coordinate
0019 % FL/R  triangle patch
0020 % nL/R  normal unit vector (Outward)
0021 %
0022 % --- Coordinate is Right-hand SPM coordinate
0023 % X: Left(-191/2)   -> Right(191/2)
0024 % Y: Back(-256/2)   -> Front(256/2)
0025 % Z: Bottom(-256/2) -> Top(256/2)
0026 %
0027 % [history]
0028 % M. Sato  2006-7-21
0029 % 2010-05-28 Taku Yoshioka
0030 %  Minor change (verbose level support)
0031 %
0032 % Copyright (C) 2011, ATR All Rights Reserved.
0033 % License : New BSD License(see VBMEG_LICENSE.txt)
0034 
0035 % Define constant
0036 %  (Center of image in BV) = (Center of image in SPM space)
0037 TRANS_COORDINATE = 2;    % = 0 : SBI-compatible-version
0038 
0039 TRANS_NORMAL     = 1;
0040 
0041 tic; 
0042 if isfield(brain_parm,'BV_left_file') & ...
0043     ~isempty(brain_parm.BV_left_file),
0044     %
0045     % --- Brain-Voyager coordinate
0046     %
0047     % [Left-hand coordinate]
0048     % X:Front(0) -> Back(255)
0049     % Y:Top(0)   -> Bottom(255)
0050     % Z:Right(0) -> Left(255)
0051     
0052     % V0L/R  Brain-Voyager coordinate
0053     % n0L/R  inward-normal unit vector
0054     % FOL/R  triangle patch
0055 
0056     vb_disp('Read BrainVoyager SRF files ');
0057     
0058     Srf = vb_ScriptLoadSRF(brain_parm.BV_left_file);
0059     V0L = [Srf.VertexX, Srf.VertexY, Srf.VertexZ]; 
0060     n0L = [Srf.NormalX, Srf.NormalY, Srf.NormalZ]; 
0061     F0L = Srf.Triangles+1;
0062     
0063     Srf = vb_ScriptLoadSRF(brain_parm.BV_right_file);
0064     V0R = [Srf.VertexX, Srf.VertexY, Srf.VertexZ]; 
0065     n0R = [Srf.NormalX, Srf.NormalY, Srf.NormalZ]; 
0066     F0R = Srf.Triangles+1;
0067     
0068     vb_disp_nonl('Coordinate transformation (BV to SPM): ');
0069     
0070     V0L = vb_bvoyger_to_spm_right(V0L,TRANS_COORDINATE);
0071     V0R = vb_bvoyger_to_spm_right(V0R,TRANS_COORDINATE);
0072     n0L = vb_bvoyger_to_spm_right(n0L,TRANS_NORMAL);
0073     n0R = vb_bvoyger_to_spm_right(n0R,TRANS_NORMAL);
0074     
0075     % Outward normal vector
0076     n0L = -n0L; 
0077     n0R = -n0R; 
0078 
0079 elseif isfield(brain_parm,'FS_left_file') & ...
0080         ~isempty(brain_parm.FS_left_file), 
0081 
0082     % Check FS_xfm_file parameter
0083     if ~isfield(brain_parm,'FS_xfm_file')
0084        brain_parm.FS_xfm_file = [];
0085     end
0086 
0087     % FreeSurfer files
0088     vb_disp_nonl('Read FreeSurfer .asc files: ');
0089     
0090     [V0L,F0L] = vb_fs_load_surface(brain_parm.FS_left_file,...
0091                       brain_parm.FS_xfm_file,1.0);
0092     [V0R,F0R] = vb_fs_load_surface(brain_parm.FS_right_file,...
0093                       brain_parm.FS_xfm_file,1.0);
0094     
0095     % Outward normal vector
0096     [F0L,V0L,n0L] = vb_out_normal_surf(F0L,V0L);
0097     [F0R,V0R,n0R] = vb_out_normal_surf(F0R,V0R);
0098 end
0099 
0100 vb_disp(sprintf('%f[sec]',toc));
0101 
0102 clear Srf
0103

Generated on Tue 27-Aug-2013 11:46:04 by m2html © 2005