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

📄 nano3read.m

📁 matlab处理图像的一些基本方法。其中有一部分mex程序需要安装编译
💻 M
字号:
function  [img, header, errmsg] = nano3read(filename)%NANO3READ  Read the header and the image from a nanoscope file.%%       [I, H, ERRMSG] = NANO3READ(FILENAME)%%       Return:     1) The header of the file, empty on error.%                   2) The image matrix, empty on error.%                   3) An error message if occours.%%    On error, an error message is returned%    After read the file the image is 90 degree rotated%    to be reproducible with the nanoscope.%%       Claudio  6 May, 1994.%%% Copyright (c) 1995 by Claudio Rivetti and Mark Young% claudio@alice.uoregon.edu,    mark@alice.uoregon.edu%HEADER_SIZE_NS2 = 2048;HEADER_SIZE_NS3 = 8192;fp = fopen(filename, 'r');if fp == -1   errmsg='File not found';   return;endh = fread(fp, HEADER_SIZE_NS2, 'char');h=setstr(h)';header_size=getparameter(h, 'Data length',1);if header_size==inf    fclose(fp);    errmsg='Wrong file format';    returnendfrewind(fp);header = fread(fp, header_size, 'char');header = setstr(header)';il=findstr(header, 'image list');bs=findstr(header, '\*');p=[];for i=1:length(il)  p=[p bs(max(find(bs<il(i))))];endp=[p find(header==26)];p=unique(p);nimages=length(p)-1;if nimages==2  type1=getparameter(header, 'Image data',1);  type2=getparameter(header, 'Image data',2);  msg=['In ' filename '||',...       ' Image 1 -> ' type1 '|',...       ' Image 2 -> ' type2 '|',...       '|    Which one do you want to load? |'];  r=alexdlg(msg, 'First', 'Second', 'Cancel');elseif nimages>2  type1=getparameter(header, 'Image data',1);  type2=getparameter(header, 'Image data',2);  type3=getparameter(header, 'Image data',3)  msg=['In ' filename '||',...       ' Image 1 -> ' type1 '|',...       ' Image 2 -> ' type2 '|',...       ' Image 3 -> ' type3 '|',...       '|     Which one do you want to load? |'];  r=alexdlg(msg, 'First', 'Second', 'Third');endif strcmp(r, 'Cancel')  fclose(fp);  return;endif strcmp(r, 'First'),  ni=1;endif strcmp(r, 'Second'), ni=2;endif strcmp(r, 'Third'),  ni=3;endif nimages>1  nh=[header(1:p(1)-1) header(p(ni):p(ni+1)-1)];  header=[nh zeros(1,length(header)-length(nh))];endoffset=getparameter(header, 'Data offset',inf);if getparameter(header, 'Version',1) ~= inf  s1=getparameter(header, 'Samps/line',inf);  s2=getparameter(header, 'Number of lines',inf);  msize=[s1 s2];else  msize=getparameter(header, 'Samps/line',inf);endfseek(fp, offset, -1);img = fread(fp, msize, 'short', 'vaxd');img = rot90(img);fclose(fp);return

⌨️ 快捷键说明

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