📄 nano2read.m
字号:
function [img, header, errmsg] = nano2read(filename)%NANO2READ Read the header and the image from a nanoscope 2 file.%% [I, H, ERRMSG] = NANO2READ(FILENAME, OPTION)%% Return: 1) The header of the file, empty on error.% 2) The image matrix, empty on error.% 3) An error message if occours.%% OPTION can be: FIRST -return the first image% SECOND -return the second image% BOTH -return both images in one matrix%% On error, an error message is displayed if nargout < 3.% After read the file the image is 90 degree rotated and% the bytes are flipped in order to be reproducible% with the nanoscope.%% Claudio 11 Oct, 1995.%%% Copyright (c) 1995 by Claudio Rivetti and Mark Young% claudio@alice.uoregon.edu, mark@alice.uoregon.edu%global Original_NANO2_headerHEADER_SIZE_NS2 = 2048;fp = fopen(filename, 'r');if fp == -1 if nargout==3 errmsg='File not found'; else error('File not found'); end return;end[header,n] = fread(fp, HEADER_SIZE_NS2, 'char');header=setstr(header)';if n~=HEADER_SIZE_NS2 | isempty(findstr(header, 'z_scale')) fclose(fp); if nargout==3 errmsg='Wrong file format'; else error('Wrong file format'); end returnendheader=strrep(header, [13 10], [13 10, '\']);header=['\*' header];header=strrep(header, [13 10 92 32 ], 32);header=strrep(header, [92 26], 26);header=strrep(header, ' =', ':');Original_NANO2_header=header;header=setparameter(header, '*ALEX Header', '');header=setparameter(header, 'File Type', 'NANO2');header=setparameter(header, 'Date', getparameter(header, 'time',1));header=setparameter(header, 'Data length', HEADER_SIZE_NS2);qq=getparameter(header, 'num_samp',1);header=setparameter(header, 'Samps/line', [qq qq]);header=setparameter(header, 'Serial number', ' ');header=setparameter(header, 'Id', getparameter(header, 'h_id',1));header=setparameter(header, 'X offset', '0 nm');header=setparameter(header, 'Y offset', '0 nm');qq=getparameter(header, 'scan_sz',1);header=setparameter(header, 'Scan size', [num2str(qq) ' nm']);f=getparameter(header, 'z_scale', 1)/16385;header=setparameter(header, 'Trasform. Factor', f);header=setparameter(header, 'Note', [getparameter(header, 'text',1) ' ']);header=strrep(header, ' ', ' ');header=strrep(header, ' ', '');hlen=length(header);if hlen > HEADER_SIZE_NS2 header=header(1:HEADER_SIZE_NS2);else header=[header zeros(1,HEADER_SIZE_NS2-hlen)]; endmsize=getparameter(header, 'Samps/line',2);img = fread(fp, msize, 'short', 'vaxd');fclose(fp);img = rot90(img);return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -