pgmread.m

来自「Code to convert an pgm image to matrix m」· M 代码 · 共 59 行

M
59
字号
% 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.% Modified by Allan Jepson, 9/99.function im = pgmRead( fname );global SIZE_LIMIT;if SIZE_LIMIT fprintf(1, 'SIZE_LIMIT recognized by pgmread\n');end[fid,msg] = fopen( fname, 'r' );if (fid == -1)  error(msg);end[pars type]= pgmReadHeader(fid);if (pars==-1)  fclose(fid);  error([fname ': cannot parse pgm header']);endxdim = pars(1);ydim = pars(2);%%% Maximum pixel valuemaxval = pars(3);fprintf(1, 'original image size: cols %d rows %d\n', xdim, ydim)sz = xdim * ydim;if SIZE_LIMIT if sz >= 16384   ydim = floor(16384/xdim);   sz = xdim * ydim;   fprintf(1, 'truncated image size: cols %d rows %d\n', xdim, ydim) endendif (type == 'P2')  [im,count]  = fscanf(fid,'%d',sz);elseif (type == 'P5')  [im,count]  = fread(fid,sz,'uchar');else  fclose(fid);  error([fname ': Not of type P2 or P5.']);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 + -
显示快捷键?