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 + -
显示快捷键?