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

📄 avw_hdr_write.html

📁 mri_toolbox是一个工具用来MRI. 来自于SourceForge, 我上传这个软件,希望能结识对医疗软件感兴趣的兄弟.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
0096 <span class="keyword">end</span>0097 0098 t=toc; fprintf(<span class="string">'...done (%5.2f sec).\n\n'</span>,t);0099 0100 <span class="keyword">return</span>0101 0102 0103 0104 0105 0106 <span class="comment">%----------------------------------------------------------------------------</span>0107 0108 <a name="_sub1" href="#_subfunctions" class="code">function write_header(fid,avw)</a>0109     0110     <a href="#_sub2" class="code" title="subfunction header_key(fid,hk)">header_key</a>(fid,avw.hdr.hk);0111     <a href="#_sub3" class="code" title="subfunction image_dimension(fid,dime)">image_dimension</a>(fid,avw.hdr.dime);0112     <a href="#_sub4" class="code" title="subfunction data_history(fid,hist)">data_history</a>(fid,avw.hdr.hist);0113     0114     <span class="comment">% check the file size is 348 bytes</span>0115     fbytes = ftell(fid);0116     fclose(fid);0117     <span class="keyword">if</span> ~isequal(fbytes,348),0118         msg = sprintf(<span class="string">'...file size is not 348 bytes!\n'</span>);0119         warning(msg);0120     <span class="keyword">end</span>0121     0122 <span class="keyword">return</span>0123 0124 <span class="comment">%----------------------------------------------------------------------------</span>0125 0126 <a name="_sub2" href="#_subfunctions" class="code">function header_key(fid,hk)</a>0127     0128     <span class="comment">% Original header structures - ANALYZE 7.5</span>0129     <span class="comment">% struct header_key                      /* header key      */</span>0130     <span class="comment">%       {                                /* off + size      */</span>0131     <span class="comment">%       int sizeof_hdr                   /*  0 +  4         */</span>0132     <span class="comment">%       char data_type[10];              /*  4 + 10         */</span>0133     <span class="comment">%       char db_name[18];                /* 14 + 18         */</span>0134     <span class="comment">%       int extents;                     /* 32 +  4         */</span>0135     <span class="comment">%       short int session_error;         /* 36 +  2         */</span>0136     <span class="comment">%       char regular;                    /* 38 +  1         */</span>0137     <span class="comment">%       char hkey_un0;                   /* 39 +  1         */</span>0138     <span class="comment">%       };                               /* total=40 bytes  */</span>0139     0140     fseek(fid,0,<span class="string">'bof'</span>);0141     0142     fwrite(fid, hk.sizeof_hdr(1),   <span class="string">'int32'</span>);  <span class="comment">% must be 348!</span>0143     0144     data_type = sprintf(<span class="string">'%-10s'</span>,hk.data_type); <span class="comment">% ensure it is 10 chars</span>0145     fwrite(fid, hk.data_type(1:10), <span class="string">'uchar'</span>);0146     0147     db_name   = sprintf(<span class="string">'%-18s'</span>,hk.db_name);   <span class="comment">% ensure it is 18 chars</span>0148     fwrite(fid, db_name(1:18),      <span class="string">'uchar'</span>);0149     0150     fwrite(fid, hk.extents(1),      <span class="string">'int32'</span>);0151     fwrite(fid, hk.session_error(1),<span class="string">'int16'</span>);0152     0153     regular   = sprintf(<span class="string">'%1s'</span>,hk.regular);     <span class="comment">% ensure it is 1 char</span>0154     fwrite(fid, regular(1),         <span class="string">'uchar'</span>);  <span class="comment">% might be uint8</span>0155     0156     <span class="comment">%hkey_un0  = sprintf('%1s',hk.hkey_un0);    % ensure it is 1 char</span>0157     <span class="comment">%fwrite(fid, hkey_un0(1),        'uchar');</span>0158     fwrite(fid, hk.hkey_un0(1),     <span class="string">'uint8'</span>);0159     0160     <span class="comment">%    &gt;Would you set hkey_un0 as char or uint8?</span>0161     <span class="comment">%   Really doesn't make any difference.  As far as anyone here can remember,</span>0162     <span class="comment">%   this was just to pad to an even byte boundary for that structure.  I guess</span>0163     <span class="comment">%   I'd suggest setting it to a uint8 value of 0 (i.e, truly zero-valued) so</span>0164     <span class="comment">%   that it doesn't look like anything important!</span>0165     <span class="comment">%   Denny &lt;hanson.dennis2@mayo.edu&gt;</span>0166     0167 <span class="keyword">return</span>0168 0169 <span class="comment">%----------------------------------------------------------------------------</span>0170 0171 <a name="_sub3" href="#_subfunctions" class="code">function image_dimension(fid,dime)</a>0172     0173     <span class="comment">%struct image_dimension</span>0174     <span class="comment">%       {                                /* off + size      */</span>0175     <span class="comment">%       short int dim[8];                /* 0 + 16          */</span>0176     <span class="comment">%       char vox_units[4];               /* 16 + 4          */</span>0177     <span class="comment">%       char cal_units[8];               /* 20 + 8          */</span>0178     <span class="comment">%       short int unused1;               /* 28 + 2          */</span>0179     <span class="comment">%       short int datatype;              /* 30 + 2          */</span>0180     <span class="comment">%       short int bitpix;                /* 32 + 2          */</span>0181     <span class="comment">%       short int dim_un0;               /* 34 + 2          */</span>0182     <span class="comment">%       float pixdim[8];                 /* 36 + 32         */</span>0183     <span class="comment">%            /*</span>0184     <span class="comment">%                pixdim[] specifies the voxel dimensions:</span>0185     <span class="comment">%                pixdim[1] - voxel width</span>0186     <span class="comment">%                pixdim[2] - voxel height</span>0187     <span class="comment">%                pixdim[3] - interslice distance</span>0188     <span class="comment">%                    ..etc</span>0189     <span class="comment">%            */</span>0190     <span class="comment">%       float vox_offset;                /* 68 + 4          */</span>0191     <span class="comment">%       float roi_scale;                 /* 72 + 4          */</span>0192     <span class="comment">%       float funused1;                  /* 76 + 4          */</span>0193     <span class="comment">%       float funused2;                  /* 80 + 4          */</span>0194     <span class="comment">%       float cal_max;                   /* 84 + 4          */</span>0195     <span class="comment">%       float cal_min;                   /* 88 + 4          */</span>0196     <span class="comment">%       int compressed;                  /* 92 + 4          */</span>0197     <span class="comment">%       int verified;                    /* 96 + 4          */</span>0198     <span class="comment">%       int glmax;                       /* 100 + 4         */</span>0199     <span class="comment">%       int glmin;                       /* 104 + 4         */</span>0200     <span class="comment">%       };                               /* total=108 bytes */</span>0201     0202     fwrite(fid, dime.dim(1:8),      <span class="string">'int16'</span>);0203     fwrite(fid, dime.vox_units(1:4),<span class="string">'uchar'</span>);0204     fwrite(fid, dime.cal_units(1:8),<span class="string">'uchar'</span>);0205     fwrite(fid, dime.unused1(1),    <span class="string">'int16'</span>);0206     fwrite(fid, dime.datatype(1),   <span class="string">'int16'</span>);0207     fwrite(fid, dime.bitpix(1),     <span class="string">'int16'</span>);0208     fwrite(fid, dime.dim_un0(1),    <span class="string">'int16'</span>);0209     fwrite(fid, dime.pixdim(1:8),   <span class="string">'float32'</span>);0210     fwrite(fid, dime.vox_offset(1), <span class="string">'float32'</span>);0211     0212     <span class="comment">% Ensure compatibility with SPM (according to MRIcro)</span>0213     <span class="keyword">if</span> dime.roi_scale == 0, dime.roi_scale = 0.00392157; <span class="keyword">end</span>0214     fwrite(fid, dime.roi_scale(1),  <span class="string">'float32'</span>);0215     0216     fwrite(fid, dime.funused1(1),   <span class="string">'float32'</span>);0217     fwrite(fid, dime.funused2(1),   <span class="string">'float32'</span>);0218     fwrite(fid, dime.cal_max(1),    <span class="string">'float32'</span>);0219     fwrite(fid, dime.cal_min(1),    <span class="string">'float32'</span>);0220     fwrite(fid, dime.compressed(1), <span class="string">'int32'</span>);0221     fwrite(fid, dime.verified(1),   <span class="string">'int32'</span>);0222     fwrite(fid, dime.glmax(1),      <span class="string">'int32'</span>);0223     fwrite(fid, dime.glmin(1),      <span class="string">'int32'</span>);0224     0225 <span class="keyword">return</span>0226 0227 <span class="comment">%----------------------------------------------------------------------------</span>0228 0229 <a name="_sub4" href="#_subfunctions" class="code">function data_history(fid,hist)</a>0230     0231     <span class="comment">% Original header structures - ANALYZE 7.5</span>0232     <span class="comment">%struct data_history</span>0233     <span class="comment">%       {                                /* off + size      */</span>0234     <span class="comment">%       char descrip[80];                /* 0 + 80          */</span>0235     <span class="comment">%       char aux_file[24];               /* 80 + 24         */</span>0236     <span class="comment">%       char orient;                     /* 104 + 1         */</span>0237     <span class="comment">%       char originator[10];             /* 105 + 10        */</span>0238     <span class="comment">%       char generated[10];              /* 115 + 10        */</span>0239     <span class="comment">%       char scannum[10];                /* 125 + 10        */</span>0240     <span class="comment">%       char patient_id[10];             /* 135 + 10        */</span>0241     <span class="comment">%       char exp_date[10];               /* 145 + 10        */</span>0242     <span class="comment">%       char exp_time[10];               /* 155 + 10        */</span>0243     <span class="comment">%       char hist_un0[3];                /* 165 + 3         */</span>0244     <span class="comment">%       int views                        /* 168 + 4         */</span>0245     <span class="comment">%       int vols_added;                  /* 172 + 4         */</span>0246     <span class="comment">%       int start_field;                 /* 176 + 4         */</span>0247     <span class="comment">%       int field_skip;                  /* 180 + 4         */</span>0248     <span class="comment">%       int omax;                        /* 184 + 4         */</span>0249     <span class="comment">%       int omin;                        /* 188 + 4         */</span>0250     <span class="comment">%       int smax;                        /* 192 + 4         */</span>0251     <span class="comment">%       int smin;                        /* 196 + 4         */</span>0252     <span class="comment">%       };                               /* total=200 bytes */</span>

⌨️ 快捷键说明

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