⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avw_hdr_read.html

📁 mri_toolbox是一个工具用来MRI. 来自于SourceForge, 我上传这个软件,希望能结识对医疗软件感兴趣的兄弟.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
0082     <span class="keyword">end</span>0083 <span class="keyword">else</span>0084     msg = sprintf(<span class="string">'...cannot find file %s.hdr\n\n'</span>,file);0085     error(msg);0086 <span class="keyword">end</span>0087 0088 t=toc; fprintf(<span class="string">'...done (%5.2f sec).\n'</span>,t);0089 0090 <span class="keyword">return</span>0091 0092 0093 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0094 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0095 <a name="_sub1" href="#_subfunctions" class="code">function [ dsr ] = read_header(fid)</a>0096     0097     <span class="comment">% Original header structures - ANALYZE 7.5</span>0098     <span class="comment">%struct dsr</span>0099     <span class="comment">%       {</span>0100     <span class="comment">%       struct header_key hk;            /*   0 +  40       */</span>0101     <span class="comment">%       struct image_dimension dime;     /*  40 + 108       */</span>0102     <span class="comment">%       struct data_history hist;        /* 148 + 200       */</span>0103     <span class="comment">%       };                               /* total= 348 bytes*/</span>0104     dsr.hk   = <a href="#_sub2" class="code" title="subfunction [hk] = header_key(fid)">header_key</a>(fid);0105     dsr.dime = <a href="#_sub3" class="code" title="subfunction [ dime ] = image_dimension(fid)">image_dimension</a>(fid);0106     dsr.hist = <a href="#_sub4" class="code" title="subfunction [ hist ] = data_history(fid)">data_history</a>(fid);0107     0108 <span class="keyword">return</span>0109 0110 0111 0112 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0113 <a name="_sub2" href="#_subfunctions" class="code">function [hk] = header_key(fid)</a>0114     0115     <span class="comment">% The required elements in the header_key substructure are:</span>0116     <span class="comment">%</span>0117     <span class="comment">% int sizeof_header   Must indicate the byte size of the header file.</span>0118     <span class="comment">% int extents         Should be 16384, the image file is created as</span>0119     <span class="comment">%                     contiguous with a minimum extent size.</span>0120     <span class="comment">% char regular        Must be 'r' to indicate that all images and</span>0121     <span class="comment">%                     volumes are the same size.</span>0122     0123     <span class="comment">% Original header structures - ANALYZE 7.5</span>0124     <span class="comment">% struct header_key                      /* header key      */</span>0125     <span class="comment">%       {                                /* off + size      */</span>0126     <span class="comment">%       int sizeof_hdr                   /*  0 +  4         */</span>0127     <span class="comment">%       char data_type[10];              /*  4 + 10         */</span>0128     <span class="comment">%       char db_name[18];                /* 14 + 18         */</span>0129     <span class="comment">%       int extents;                     /* 32 +  4         */</span>0130     <span class="comment">%       short int session_error;         /* 36 +  2         */</span>0131     <span class="comment">%       char regular;                    /* 38 +  1         */</span>0132     <span class="comment">%       char hkey_un0;                   /* 39 +  1         */</span>0133     <span class="comment">%       };                               /* total=40 bytes  */</span>0134     0135     fseek(fid,0,<span class="string">'bof'</span>);0136     0137     hk.sizeof_hdr    = fread(fid, 1,<span class="string">'*int32'</span>);  <span class="comment">% should be 348!</span>0138     hk.data_type     = fread(fid,10,<span class="string">'*char'</span>)';0139     hk.db_name       = fread(fid,18,<span class="string">'*char'</span>)';0140     hk.extents       = fread(fid, 1,<span class="string">'*int32'</span>);0141     hk.session_error = fread(fid, 1,<span class="string">'*int16'</span>);0142     hk.regular       = fread(fid, 1,<span class="string">'*char'</span>)'; <span class="comment">% might be uint8</span>0143     hk.hkey_un0      = fread(fid, 1,<span class="string">'*uint8'</span>)';0144     0145     <span class="comment">% check if this value was a char zero</span>0146     <span class="keyword">if</span> hk.hkey_un0 == 48,0147         hk.hkey_un0 = 0;0148     <span class="keyword">end</span>0149     0150 <span class="keyword">return</span>0151 0152 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0153 <a name="_sub3" href="#_subfunctions" class="code">function [ dime ] = image_dimension(fid)</a>0154     0155     <span class="comment">%struct image_dimension</span>0156     <span class="comment">%       {                                /* off + size      */</span>0157     <span class="comment">%       short int dim[8];                /* 0 + 16          */</span>0158     <span class="comment">%           /*</span>0159     <span class="comment">%           dim[0]      Number of dimensions in database; usually 4.</span>0160     <span class="comment">%           dim[1]      Image X dimension;  number of *pixels* in an image row.</span>0161     <span class="comment">%           dim[2]      Image Y dimension;  number of *pixel rows* in slice.</span>0162     <span class="comment">%           dim[3]      Volume Z dimension; number of *slices* in a volume.</span>0163     <span class="comment">%           dim[4]      Time points; number of volumes in database</span>0164     <span class="comment">%           */</span>0165     <span class="comment">%       char vox_units[4];               /* 16 + 4          */</span>0166     <span class="comment">%       char cal_units[8];               /* 20 + 8          */</span>0167     <span class="comment">%       short int unused1;               /* 28 + 2          */</span>0168     <span class="comment">%       short int datatype;              /* 30 + 2          */</span>0169     <span class="comment">%       short int bitpix;                /* 32 + 2          */</span>0170     <span class="comment">%       short int dim_un0;               /* 34 + 2          */</span>0171     <span class="comment">%       float pixdim[8];                 /* 36 + 32         */</span>0172     <span class="comment">%            /*</span>0173     <span class="comment">%                pixdim[] specifies the voxel dimensions:</span>0174     <span class="comment">%                pixdim[1] - voxel width, mm</span>0175     <span class="comment">%                pixdim[2] - voxel height, mm</span>0176     <span class="comment">%                pixdim[3] - slice thickness, mm</span>0177     <span class="comment">%               pixdim[4] - volume timing, in msec</span>0178     <span class="comment">%                    ..etc</span>0179     <span class="comment">%            */</span>0180     <span class="comment">%       float vox_offset;                /* 68 + 4          */</span>0181     <span class="comment">%       float roi_scale;                 /* 72 + 4          */</span>0182     <span class="comment">%       float funused1;                  /* 76 + 4          */</span>0183     <span class="comment">%       float funused2;                  /* 80 + 4          */</span>0184     <span class="comment">%       float cal_max;                   /* 84 + 4          */</span>0185     <span class="comment">%       float cal_min;                   /* 88 + 4          */</span>0186     <span class="comment">%       int compressed;                  /* 92 + 4          */</span>0187     <span class="comment">%       int verified;                    /* 96 + 4          */</span>0188     <span class="comment">%       int glmax;                       /* 100 + 4         */</span>0189     <span class="comment">%       int glmin;                       /* 104 + 4         */</span>0190     <span class="comment">%       };                               /* total=108 bytes */</span>0191     0192     dime.dim        = fread(fid,8,<span class="string">'*int16'</span>)';0193     dime.vox_units  = fread(fid,4,<span class="string">'*char'</span>)';0194     dime.cal_units  = fread(fid,8,<span class="string">'*char'</span>)';0195     dime.unused1    = fread(fid,1,<span class="string">'*int16'</span>);0196     dime.datatype   = fread(fid,1,<span class="string">'*int16'</span>);0197     dime.bitpix     = fread(fid,1,<span class="string">'*int16'</span>);0198     dime.dim_un0    = fread(fid,1,<span class="string">'*int16'</span>);0199     dime.pixdim     = fread(fid,8,<span class="string">'*float'</span>)';0200     dime.vox_offset = fread(fid,1,<span class="string">'*float'</span>);0201     dime.roi_scale  = fread(fid,1,<span class="string">'*float'</span>);0202     dime.funused1   = fread(fid,1,<span class="string">'*float'</span>);0203     dime.funused2   = fread(fid,1,<span class="string">'*float'</span>);0204     dime.cal_max    = fread(fid,1,<span class="string">'*float'</span>);0205     dime.cal_min    = fread(fid,1,<span class="string">'*float'</span>);0206     dime.compressed = fread(fid,1,<span class="string">'*int32'</span>);0207     dime.verified   = fread(fid,1,<span class="string">'*int32'</span>);0208     dime.glmax      = fread(fid,1,<span class="string">'*int32'</span>);0209     dime.glmin      = fread(fid,1,<span class="string">'*int32'</span>);0210     0211     <span class="keyword">if</span> dime.dim(1) &lt; 4, <span class="comment">% Number of dimensions in database; usually 4.</span>0212         fprintf(<span class="string">'...ensuring 4 dimensions in avw.hdr.dime.dim\n'</span>);0213         dime.dim(1) = int16(4);0214     <span class="keyword">end</span>0215     <span class="keyword">if</span> dime.dim(5) &lt; 1, <span class="comment">% Time points; number of volumes in database</span>0216         fprintf(<span class="string">'...ensuring at least 1 volume in avw.hdr.dime.dim(5)\n'</span>);0217         dime.dim(5) = int16(1);0218     <span class="keyword">end</span>0219     0220 <span class="keyword">return</span>0221 0222 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0223 <a name="_sub4" href="#_subfunctions" class="code">function [ hist ] = data_history(fid)</a>0224     0225     <span class="comment">% Original header structures - ANALYZE 7.5</span>0226     <span class="comment">%struct data_history</span>0227     <span class="comment">%       {                                /* off + size      */</span>0228     <span class="comment">%       char descrip[80];                /* 0 + 80          */</span>0229     <span class="comment">%       char aux_file[24];               /* 80 + 24         */</span>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -