pgmread.m

来自「matlab的steel金字塔小波分解源代码」· M 代码 · 共 60 行

M
60
字号
% IM = pgmRead( FILENAME )%% Load a pgm image into a MatLab matrix.  %   This format is accessible from the XV image browsing utility.%   Only works for 8bit gray images (raw or ascii)% Hany Farid, Spring '96.  Modified by Eero Simoncelli, 6/96.function im = pgmRead( fname );[fid,msg] = fopen( fname, 'r' );if (fid == -1)  error(msg);end%%% First line contains ID string:%%% "P1" = ascii bitmap, "P2" = ascii greymap,%%% "P3" = ascii pixmap, "P4" = raw bitmap, %%% "P5" = raw greymap, "P6" = raw pixmapTheLine = fgetl(fid);format  = TheLine;		if ~((format(1:2) == 'P2') | (format(1:2) == 'P5'))  error('PGM file must be of type P2 or P5');end%%% Any number of comment linesTheLine  = fgetl(fid);while TheLine(1) == '#' 	TheLine = fgetl(fid);end%%% dimensionssz = sscanf(TheLine,'%d',2);xdim = sz(1);ydim = sz(2);sz = xdim * ydim;%%% Maximum pixel valueTheLine  = fgetl(fid);maxval = sscanf(TheLine, '%d',1);%%im  = zeros(dim,1);if (format(2) == '2')  [im,count]  = fscanf(fid,'%d',sz);else  [im,count]  = fread(fid,sz,'uchar');endfclose(fid);if (count == sz)  im = reshape( im, xdim, ydim )';else  fprintf(1,'Warning: File ended early!');  im = reshape( [im ; zeros(sz-count,1)], xdim, ydim)';end	  

⌨️ 快捷键说明

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