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

📄 writeanalyzehdr.m

📁 医学图像处理matlab工具箱
💻 M
字号:
function [result]=WriteAnalyzeHdr(name,dim,siz,pre,lim,scale,offset,origin,descr),%  Writes the analyze header file %%    [result]=WriteAnalyzeHdr(name,dim,siz,pre,lim,scale,offset,origin[,descr])%    [result]=WriteAnalyzeHdr(name,dim,siz,pre,lim,scale,offset,origin,descr)%    [result]=WriteAnalyzeHdr(hdr)%%  name      - name of image file%  dim       - x,y,z,[t] no of pixels in each direction%  siz       - voxel size in mm%  pre       - precision for pictures (8 or 16)%  lim       - max and min limits for pixel values (ex: [255 0] for 8 bit)%  scale     - scale is scaling of pixel values%  offset    - offset is offset in pixel values%  origin    - origin for AC-PC plane%  descr     - description of file, scan%%  hdr       - structure with all the fields mentionened above plus%               path - path fol file%%  abs_pix_val = (pix_val - offset) * scale%%  CS, 130398%  CS, 280100  Reading changed so routines works on both HP and Linux%              systems%  CS, 150200  Extended to be able to use descrion field%  CS, 060700  Structure input (hdr) extended as possibility%  CS, 210901  Extended with extra 'path' field in stucture hdr%if (nargin ~=1) & (nargin ~= 8) & (nargin ~= 9)   ErrTxt=sprintf('WriteAnalyzeHdr, (%i) is an incorrect number of input arguments',nargin);   error(ErrTxt);end;if (nargin == 8)  descr='Header generated using WriteAnalyzeHdr';endif (nargin == 8) | (nargin == 9)  path='';end  %if (nargin == 1)  hdr=name;  %  if (~isfield(hdr,'fileformat'))    fileformat = 'ieee-be';  else    fileformat = hdr.fileformat;   end;  if (~isfield(hdr,'name'))    error('hdr.name does not exist');  end;  name=hdr.name;  if (~isfield(hdr,'dim'))    error('hdr.dim does not exist');  end;  dim=hdr.dim;  if (~isfield(hdr,'siz'))    error('hdr.siz does not exist');  end;  siz=hdr.siz;  if (~isfield(hdr,'pre'))    error('hdr.pre does not exist');  end;  pre=hdr.pre;  if (~isfield(hdr,'lim'))    error('hdr.lim does not exist');  end;  lim=hdr.lim;  if (~isfield(hdr,'scale'))    error('hdr.scale does not exist');  end;  scale=hdr.scale;  if (~isfield(hdr,'offset'))    error('hdr.offset does not exist');  end;  offset=hdr.offset;  if (~isfield(hdr,'origin'))    origin=[0 0 0];  else      origin=hdr.origin;  end;  if (~isfield(hdr,'descr'))    descr='Header generated using WriteAnalyzeHdr';  else      descr=hdr.descr;  end;  if (~isfield(hdr,'path')) | ...    ~isempty(findstr(hdr.name,'/')) | ...     ~isempty(findstr(hdr.name,'\'))     path='';  else      path=hdr.path;    if ~isempty(path)      cname = computer;      if strcmp(cname(1:2),'PC')        if (path(length(path)) ~= '\')          path(length(path)+1) ='\';        end      else          if (path(length(path)) ~= '/')          path(length(path)+1) ='/';        end      end    end    end;end%if (length(dim) == 3)  dim(4)=1;end;  result=1;FileName=sprintf('%s%s.hdr',path,name);pid=fopen(FileName,'wb',fileformat);%fwrite(pid,348,'int');fwrite(pid,zeros(28,1),'char');fwrite(pid,16384,'int');fwrite(pid,zeros(2,1),'char');fwrite(pid,'r','char');fwrite(pid,zeros(1,1),'char');fwrite(pid,4,'int16');fwrite(pid,dim,'int16');fwrite(pid,zeros(20,1),'char');if (pre == 8),  fwrite(pid,2,'int16');elseif (pre == 16),  fwrite(pid,4,'int16');elseif (pre == 32),  fwrite(pid,32,'int16');elseif (pre == 64),  fwrite(pid,64,'int16');elseif (pre == 1),  fwrite(pid,1,'int16');else  error('WriteAnalyzeHdr, pre parameter do not have allowable value');end  fwrite(pid,pre,'int16');fwrite(pid,zeros(6,1),'char');if (length(siz) ~= 3)  error('WriteAnalyzeHdr, siz parameter do not have allowable value');end;  fwrite(pid,siz,'float32');fwrite(pid,zeros(16,1),'char');fwrite(pid,offset,'float32');fwrite(pid,scale,'float32');fwrite(pid,zeros(24,1),'char');fwrite(pid,lim(1),'int');fwrite(pid,lim(2),'int');fwrite(pid,sprintf('%-80s',descr),'char');fwrite(pid,zeros(24,1),'char');fwrite(pid,0,'char');  % orientationif (length(origin) ~= 3)  error('WriteAnalyzeHdr, origin parameter do not have allowable value');end;  fwrite(pid,origin,'int16');  fwrite(pid,zeros(89,1),'char'); fclose(pid);

⌨️ 快捷键说明

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