spiwrite.m

来自「matlab处理图像的一些基本方法。其中有一部分mex程序需要安装编译」· M 代码 · 共 126 行

M
126
字号
function spiwrite(fname, img, h)%SPIWRITE Write the image in the Spider format.%%	SPIWRITE(FILENAME, IMAGE, HEADER)%%	FILENAME the file name to store the image.%	IMAGE is the image matrix (better if in nm).%	HEADER is the AFM file header. (optional)%%	On error, an error message is displayed.%%	Claudio 5 Apr, 1995.%% Copyright (c) 1995 by Claudio Rivetti and Mark Young% claudio@alice.uoregon.edu,    mark@alice.uoregon.edu%header=1;if nargin == 2  header=0;endif nargin < 2  error('Too few input arguments.');end[fp, errmsg]=fopen(fname, 'w+');if fp==-1  error(errmsg);end% Make the BINHEADERnslice=-1;nrow=size(img, 1);%?????nrec=nrow*4;nlabel=0;iform=1;imami=1;fmax=max(max(img));fmin=min(min(img));av=mean(mean(img));sig=-1;ihist=0;nsum=size(img, 2);labrec=2;iangle=0;phi=0;theta=0;gamma=0;xoff=0;yoff=0;zoff=0;if header  ss=scansize(h);else  ss=nsum;endscale=ss/nsum;%????labbyt=512*8;rowbyt=nsum*4;BINHEADER=[nslice nrow nrec nlabel iform imami fmax fmin av sig ihist nsum labrec iangle phi theta gamma xoff yoff zoff scale labbyt rowbyt];% Make the ASCIIHEADERif header  dt=getparameter(h, 'Date',1);  s=find(dt==' ');  tim=dt(1:s(1)-1);  m=dt(s(3)+1:s(4)-1);  d=dt(s(4)+1:s(5)-1);  y=dt(s(5)+1:length(dt));  idat=[d '-' m '-' y];  l=length(idat);  idat=[idat blanks(12-l)];  itim=tim(1:8);  itit=getparameter(h, 'Note',1);  if itit==inf, itit=[];end;  itit=[' ' itit];  l=length(itit);  if l>80    itit=itit(1:80);    l=80;  end  itit=[itit setstr(zeros(1,3232-l))];else  idat=date;  l=length(idat);  idat=[idat blanks(12-l)];  itim=time;  itit=[' ' setstr(zeros(1,3232-1))];end  ASCIIHEADER=[idat itim itit];ZEROS=zeros(1,188);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fwrite(fp, BINHEADER, 'float');fwrite(fp, ZEROS, 'float');fwrite(fp, ASCIIHEADER, 'char');img = rot90(img, -1);img = fliplr(img);fwrite(fp, img, 'float');fclose(fp);return;

⌨️ 快捷键说明

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