📄 ctf_write_mri.html
字号:
0245 0246 <span class="keyword">return</span>0247 0248 0249 0250 0251 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0252 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0253 <a name="_sub2" href="#_subfunctions" class="code">function headModel_write(fid,HeadModel_Info),</a>0254 0255 <span class="comment">% this function is called from Version_2_Header_read</span>0256 0257 <span class="comment">% fid. point coordinate (in voxels)</span>0258 fwrite(fid,HeadModel_Info.Nasion_Sag ,<span class="string">'short'</span>); <span class="comment">% nasion - sagittal</span>0259 fwrite(fid,HeadModel_Info.Nasion_Cor ,<span class="string">'short'</span>); <span class="comment">% nasion - coronal</span>0260 fwrite(fid,HeadModel_Info.Nasion_Axi ,<span class="string">'short'</span>); <span class="comment">% nasion - axial</span>0261 fwrite(fid,HeadModel_Info.LeftEar_Sag ,<span class="string">'short'</span>); <span class="comment">% left ear - sagittal</span>0262 fwrite(fid,HeadModel_Info.LeftEar_Cor ,<span class="string">'short'</span>); <span class="comment">% left ear - coronal</span>0263 fwrite(fid,HeadModel_Info.LeftEar_Axi ,<span class="string">'short'</span>); <span class="comment">% left ear - axial</span>0264 fwrite(fid,HeadModel_Info.RightEar_Sag ,<span class="string">'short'</span>); <span class="comment">% right ear - sagittal</span>0265 fwrite(fid,HeadModel_Info.RightEar_Cor ,<span class="string">'short'</span>); <span class="comment">% right ear - coronal</span>0266 fwrite(fid,HeadModel_Info.RightEar_Axi ,<span class="string">'short'</span>); <span class="comment">% right ear - axial</span>0267 0268 fwrite(fid,<span class="string">' '</span>,<span class="string">'char'</span>); <span class="comment">% padding to 4 byte boundary - from Robert Oostenveld</span>0269 0270 <span class="comment">% default sphere origin</span>0271 fwrite(fid,HeadModel_Info.defaultSphereX ,<span class="string">'float'</span>); <span class="comment">% sphere origin x coordinate ( in mm )</span>0272 fwrite(fid,HeadModel_Info.defaultSphereY ,<span class="string">'float'</span>); <span class="comment">% sphere origin y coordinate ( in mm )</span>0273 fwrite(fid,HeadModel_Info.defaultSphereZ ,<span class="string">'float'</span>); <span class="comment">% sphere origin z coordinate ( in mm )</span>0274 fwrite(fid,HeadModel_Info.defaultSphereRadius ,<span class="string">'float'</span>); <span class="comment">% default sphere radius ( in mm )</span>0275 0276 <span class="keyword">return</span>0277 0278 0279 0280 0281 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0282 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>0283 <a name="_sub3" href="#_subfunctions" class="code">function imageInfo_write(fid,Image_Info),</a>0284 0285 <span class="comment">% this function is called from Version_2_Header_read</span>0286 0287 fwrite(fid,Image_Info.modality,<span class="string">'short'</span>); <span class="comment">% 0 = MRI, 1 = CT, 2 = PET, 3 = SPECT, 4 = OTHER</span>0288 0289 0290 <span class="comment">% check the length of char variables</span>0291 0292 <span class="comment">% Image_Info.manufacturerName = char( fread(fid,[1,64],'char') );</span>0293 <span class="comment">% Image_Info.instituteName = char( fread(fid,[1,64],'char') );</span>0294 <span class="comment">% Image_Info.patientID = char( fread(fid,[1,32],'char') );</span>0295 <span class="comment">% Image_Info.dateAndTime = char( fread(fid,[1,32],'char') );</span>0296 <span class="comment">% Image_Info.scanType = char( fread(fid,[1,32],'char') );</span>0297 <span class="comment">% Image_Info.contrastAgent = char( fread(fid,[1,32],'char') );</span>0298 <span class="comment">% Image_Info.imagedNucleus = char( fread(fid,[1,32],'char') );</span>0299 0300 manufacturerName = sprintf(<span class="string">'%-64s'</span>, Image_Info.manufacturerName);0301 <span class="keyword">if</span> length(manufacturerName) < 64,0302 paddingN = 64 - length(manufacturerName);0303 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0304 manufacturerName = [manufacturerName,padding];0305 <span class="keyword">end</span>0306 0307 instituteName = sprintf(<span class="string">'%-64s'</span>, Image_Info.instituteName);0308 <span class="keyword">if</span> length(instituteName) < 64,0309 paddingN = 64 - length(instituteName);0310 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0311 instituteName = [instituteName,padding];0312 <span class="keyword">end</span>0313 0314 patientID = sprintf(<span class="string">'%-32s'</span>, Image_Info.patientID);0315 <span class="keyword">if</span> length(patientID) < 32,0316 paddingN = 32 - length(patientID);0317 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0318 patientID = [patientID,padding];0319 <span class="keyword">end</span>0320 0321 dateAndTime = sprintf(<span class="string">'%-32s'</span>, Image_Info.dateAndTime);0322 <span class="keyword">if</span> length(dateAndTime) < 32,0323 paddingN = 32 - length(dateAndTime);0324 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0325 dateAndTime = [dateAndTime,padding];0326 <span class="keyword">end</span>0327 0328 scanType = sprintf(<span class="string">'%-32s'</span>, Image_Info.scanType);0329 <span class="keyword">if</span> length(scanType) < 32,0330 paddingN = 32 - length(scanType);0331 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0332 scanType = [scanType,padding];0333 <span class="keyword">end</span>0334 0335 contrastAgent = sprintf(<span class="string">'%-32s'</span>, Image_Info.contrastAgent);0336 <span class="keyword">if</span> length(contrastAgent) < 32,0337 paddingN = 32 - length(contrastAgent);0338 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0339 contrastAgent = [contrastAgent,padding];0340 <span class="keyword">end</span>0341 0342 imagedNucleus = sprintf(<span class="string">'%-32s'</span>, Image_Info.imagedNucleus);0343 <span class="keyword">if</span> length(imagedNucleus) < 32,0344 paddingN = 32 - length(imagedNucleus);0345 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0346 imagedNucleus = [imagedNucleus,padding];0347 <span class="keyword">end</span>0348 0349 <span class="comment">% output these char variables</span>0350 0351 fwrite(fid,manufacturerName(1:64),<span class="string">'char'</span>);0352 fwrite(fid,instituteName(1:64),<span class="string">'char'</span>);0353 fwrite(fid,patientID(1:32),<span class="string">'char'</span>);0354 fwrite(fid,dateAndTime(1:32),<span class="string">'char'</span>);0355 fwrite(fid,scanType(1:32),<span class="string">'char'</span>);0356 fwrite(fid,contrastAgent(1:32),<span class="string">'char'</span>);0357 fwrite(fid,imagedNucleus(1:32),<span class="string">'char'</span>);0358 0359 fwrite(fid,<span class="string">' '</span>,<span class="string">'char'</span>); <span class="comment">% padding to 4 byte boundary - from Robert Oostenveld</span>0360 0361 fwrite(fid,Image_Info.Frequency ,<span class="string">'float'</span>);0362 fwrite(fid,Image_Info.FieldStrength ,<span class="string">'float'</span>);0363 fwrite(fid,Image_Info.EchoTime ,<span class="string">'float'</span>);0364 fwrite(fid,Image_Info.RepetitionTime ,<span class="string">'float'</span>);0365 fwrite(fid,Image_Info.InversionTime ,<span class="string">'float'</span>);0366 fwrite(fid,Image_Info.FlipAngle ,<span class="string">'float'</span>);0367 fwrite(fid,Image_Info.NoExcitations ,<span class="string">'short'</span>);0368 fwrite(fid,Image_Info.NoAcquisitions ,<span class="string">'short'</span>);0369 0370 0371 commentString = sprintf(<span class="string">'%-256s'</span>, Image_Info.commentString);0372 <span class="keyword">if</span> length(commentString) < 256,0373 paddingN = 256 - length(commentString);0374 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0375 commentString = [commentString,padding];0376 <span class="keyword">end</span>0377 0378 forFutureUse = sprintf(<span class="string">'%-64s'</span>, Image_Info.forFutureUse);0379 <span class="keyword">if</span> length(forFutureUse) < 64,0380 paddingN = 64 - length(forFutureUse);0381 padding = char(repmat(double(<span class="string">' '</span>),1,paddingN));0382 forFutureUse = [forFutureUse,padding];0383 <span class="keyword">end</span>0384 0385 fwrite(fid,commentString(1:256),<span class="string">'char'</span>);0386 fwrite(fid,forFutureUse(1:64),<span class="string">'char'</span>);0387 0388 <span class="keyword">return</span>0389 0390 0391 0392 0393 0394 0395 0396 0397 <span class="comment">% The CTF MRI File format used by MRIViewer consists of a binary file with a</span>0398 <span class="comment">% 1,028 byte header. The MRI data can be in 8-bit (unsigned character) or 16-bit</span>0399 <span class="comment">% (unsigned short integer) format and consists of 256 x 256 pixel slices, stored as</span>0400 <span class="comment">% 256 contiguous sagittal slices from left to right (or right to left if head orientation</span>0401 <span class="comment">% is 搇eft-on-right
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -