大家好,又见面了,我是你们的朋友全栈君。
如何查看MATLAB函数的源代码
大家都知道MATLAB是开源的,所有的函数源代码都是可以查看的。但是,对于初学者来说,可能还不知道如何查看MATLAB函数的源代码。
函数之 type
假设需要查看function_name的源代码,在命令窗口中键入 type function_name
即:
>> type imread
function [X, map, alpha] = imread(varargin)
%IMREAD Read image from graphics file.
% A = IMREAD(FILENAME,FMT) reads a grayscale or color image from the file
% specified by the string FILENAME. If the file is not in the current
% directory, or in a directory on the MATLAB path, specify the full
% pathname.
%
% The text string FMT specifies the format of the file by its standard
% file extension. For example, specify ‘gif’ for Graphics Interchange
% Format files. To see a list of supported formats, with their file
% extensions, use the IMFORMATS function. If IMREAD cannot find a file
% named FILENAME, it looks for a file named FILENAME.FMT.
%
% The return value A is an array containing the image data. If the file
% contains a grayscale image, A is an M-by-N array. If the file contains
% a truecolor image, A is an M-by-N-by-3 array. For TIFF files containing
% color images that use the CMYK color space, A is an M-by-N-by-4 array.
% See TIFF in the Format-Specific Information section for more
% information.
%
% The class of A depends on the bits-per-sample of the image data,
% rounded to the next byte boundary. For example, IMREAD returns 24-bit
% color data as an array of uint8 data because the sample size for each
% color component is 8 bits. See the Remarks section for a discussion of
% bitdepths, and see the Format-Specific Information section for more
% detail about supported bitdepths and sample sizes for a particular
% format.
%
% [X,MAP] = IMREAD(FILENAME,FMT) reads the indexed image in FILENAME into
% X and its associated colormap into MAP. Colormap values in the image
% file are automatically rescaled into the range [0,1].
%
% […] = IMREAD(FILENAME) attempts to infer the format of the file
% from its content.
%
% […] = IMREAD(URL,…) reads the image from an Internet URL.
%
% Remarks
%
% Bitdepth is the number of bits used to represent each image pixel.
% Bitdepth is calculated by multiplying the bits-per-sample with the
% samples-per-pixel. Thus, a format that uses 8-bits for each color
% component (or sample) and three samples per pixel has a bitdepth of 24.
% Sometimes the sample size associated with a bitdepth can be ambiguous:
% does a 48-bit bitdepth represent six 8-bit samples or three 16-bit
% samples? The following format-specific sections provide sample size
% information to avoid this ambiguity.
%
% Format-Specific Information (Listed Alphabetically by Format)
%
% BMP — Windows Bitmap
%
% Supported Compression Output
% Bitdepths None RLE Class Notes
% ———————————————————
% 1-bit x – logical
% 4-bit x x uint8
% 8-bit x x uint8
% 16-bit x – uint8 1 sample/pixel
% 24-bit x – uint8 3 samples/pixel
% 32-bit x – uint8 3 samples/pixel (1 byte padding)
%
% CUR — Cursor File
%
% Supported Compression Output
% Bitdepths None Compressed Class
% ————————————————–
% 1-bit x – logical
% 4-bit x – uint8
% 8-bit x – uint8
%
% Special syntaxes:
%
% […] = IMREAD(…,IDX) reads in one image from a multi-image icon or
% cursor file. IDX is an integer value that specifies the order that the
% image appears in the file. For example, if IDX is 3, IMREAD reads the
% third image in the file. If you omit this argument, IMREAD reads the
% first image in the file.
%
% [A,MAP,ALPHA] = IMREAD(…) returns the AND mask for the resource,
% which can be used to determine transparency information. For cursor
% files, this mask may contain the only useful data.
%
% GIF — Graphics Interchange Format
%
% Supported Compression Output
% Bitdepths None Compressed Class
% ———————————————
% 1-bit x – logical
% 2-to-8 bit x – uint8
%
% Special syntaxes:
%
% […] = IMREAD(…,IDX) reads in one or more frames from a multiframe
% (i.e., animated) GIF file. IDX must be an integer scalar or vector of
% integer values. For example, if IDX is 3, IMREAD reads the third image
% in the file. If IDX is 1:5, only the first five frames are returned.
%
% […] = IMREAD(…,’Frames’,IDX) is the same as the syntax above except
% that IDX can be ‘all’. In this case, all of the frames are read and
% returned in the order that they appear in the file.
%
% Note: Because of the way GIF files are structured, all of the frames
% must be read when a particular frame is requested. Consequently, it is
% much faster to specify a vector of frames or ‘all’ for IDX than to call
% IMREAD in a loop when reading multiple frames from the same GIF file.
%
% HDF — Hierarchical Data Format
%
% Supported Raster image Raster image Output
% Bitdepths with colormap without colormap Class Notes
% ————————————————————
% 8-bit x x uint8
% 24-bit – x uint8 3 samples/pixel
%
% Special Syntaxes:
%
% […] = IMREAD(…,REF) reads in one image from a multi-image HDF file.
% REF is an integer value that specifies the reference number used to
% identify the image. For example, if REF is 12, IMREAD reads the image
% whose reference number is 12. (Note that in an HDF file the reference
% numbers do not necessarily correspond with the order of the images in
% the file. You can use IMFINFO to match up image order with reference
% number.) If you omit this argument, IMREAD reads the first image in
% the file.
%
% ICO — Icon File
%
% See CUR.
%
% JPEG — Joint Photographic Experts Group
%
% Note: IMREAD can read any baseline JPEG image as well as JPEG images
% with some commonly used extensions.
%
% Supported Compression Output
% Bitdepths Lossy Lossless Class Notes
% ——————————————————–
% 8-bit x x uint8 Grayscale or RGB
% 12-bit x x uint16 Grayscale
% 16-bit – x uint16 Grayscale
% 36-bit x x uint16 RGB(Three 12-bit samples/pixel)
%
% JPEG 2000 – Joint Photographic Experts Group 2000
%
% Supported Compression Output
% Bitdepths Lossy Lossless Class
% (per sample)
% ———————————————————-
% 1-bit x x logical
% 2- to 8-bit x x uint8
% 9- to 16-bit x x uint16
%
% Note: Indexed JPEG 2000 images are not supported. Only JP2 compatible
% color spaces are supported for JP2/JPX files. Arbitrary channels are
% supported for raw codestream J2C files.
%
% Special Syntaxes
%
% […] = IMREAD(…, ‘Param1’, value1, ‘Param2’, value2, …) uses
% parameter-value pairs to control the read operation.
%
% Parameter name Value
% ————– —–
% ‘ReductionLevel’ A non-negative integer specifying reduction in
% the resolution of the image. For a reduction
% level ‘L’, the image resolution is reduced by a
% factor of 2^L. Its default value is 0 implying
% no reduction. The reduction level is limited by
% the total number of decomposition levels as
% provided by ‘WaveletDecompositionLevels’ field
% in the structure returned from IMFINFO function.
%
% ‘PixelRegion’ {ROWS, COLS}. IMREAD returns the sub-image
% specified by the boundaries in ROWS and COLS.
% ROWS and COLS must both be two-element vectors
% that denote the 1-based indices [START STOP]. If
% ‘ReductionLevel’ is greater than 0, then ROWS and
% COLS are coordinates in the reduced-sized image.
%
% ‘V79Compatible’ A BOOL value. If true, image returned is color
% converted to gray-scale or RGB image as consistent
% with previous versions of IMREAD (MATLAB 7.9
% [R2009b] and earlier). Otherwise raw color
% image is returned. Default is false.
%
%
% PBM — Portable Bitmap
%
% Supported Raw ASCII (Plain) Output
% Bitdepths Binary Encoded Class
% —————————————-
% 1-bit x x logical
%
% PCX — Windows Paintbrush
%
% Supported Output
% Bitdepths Class Notes
% ———————————————-
% 1-bit logical Grayscale only
% 8-bit uint8 Grayscale or indexed
% 24-bit uint8 RGB (8-bit samples)
%
% PGM — Portable Graymap
%
% Supported Raw ASCII (Plain) Output
% Bitdepths Binary Encoded Class
% ————————————————
% up to 16-bit x – uint8
% Arbitrary – x
%
% PNG — Portable Network Graphics
%
% Supported Output
% Bitdepths Class Notes
% ——————————————-
% 1-bit logical Grayscale only
% 2-bit uint8 Grayscale only
% 4-bit uint8 Grayscale only
% 8-bit uint8 Grayscale or Indexed
% 16-bit uint16 Grayscale or Indexed
% 24-bit uint8 RGB (Three 8-bit samples/pixel)
% 48-bit uint16 RGB (Three 16-bit samples/pixel)
%
% Special Syntaxes:
%
% […] = IMREAD(…,’BackgroundColor’,BG) composites any transparent
% pixels in the input image against the color specified in BG. If BG is
% ‘none’, then no compositing is performed. Otherwise, if the input image
% is indexed, BG should be an integer in the range [1,P] where P is the
% colormap length. If the input image is grayscale, BG should be an
% integer in the range [0,1]. If the input image is RGB, BG should be a
% three-element vector whose values are in the range [0,1]. The string
% ‘BackgroundColor’ may be abbreviated.
%
% If the ALPHA output argument is used (see below), then BG defaults to
% ‘none’ if not specified by the user. Otherwise, if the PNG file
% ontains a background color chunk, that color is used as the default
% value for BG. If ALPHA is not used and the file does not contain a
% background color chunk, then the default value for BG is 1 for indexed
% images; 0 for grayscale images; and [0 0 0] for RGB images.
%
% [A,MAP,ALPHA] = IMREAD(…) returns the alpha channel if one is
% present; otherwise ALPHA is []. If ‘BackgroundColor’ is specified by
% the user then ALPHA is []. Note that MAP may be empty if the file
% contains a grayscale or truecolor image.
%
% PPM — Portable Pixmap
%
% Supported Raw ASCII (Plain) Output
% Bitdepths Binary Encoded Class
% ————————————————
% up to 16-bit x – uint8
% Arbitrary – x
%
% RAS — Sun Raster
%
% Supported Output
% Bitdepths Class Notes
% —————————————————-
% 1-bit logical Bitmap
% 8-bit uint8 Indexed
% 24-bit uint8 RGB (8-bit samples)
% 32-bit uint8 RGB with Alpha (8-bit samples)
%
% TIFF — Tagged Image File Format
%
% Supported Compression Output
% Bitdepths None Packbits CCITT RGB ICCLAB CIELAB CMYK Class Notes
% ———————————————————————–
% 1-bit x x x – – – – logical
% 8-bit x x – – – – – uint8
% 12-bit – – – – – – – uint16 Grayscale
% or Indexed
% 16-bit – – – – – – – uint16 Grayscale
% or Indexed
% 24-bit x x – x x x – uint8 3 samples
% 32-bit – – – – – – x uint8 4 samples
% 36-bit – – – x – – – uint16 3 samples
% 48-bit – – – x x x – uint16 3 samples
% 64-bit – – – – – – x double 4 samples
%
% NOTE: IMREAD supports 8-bit integral and 32-bit floating point tiled
% TIFF images, with any compression and colorspace combination listed
% above, and 32-bit IEEE floating point images.
%
% Special Syntaxes:
%
% A = IMREAD(…) returns color data that uses the RGB, CIELAB, ICCLAB,
% or CMYK color spaces. If the color image uses the CMYK color space, A
% is an M-by-N-by-4 array.
%
% […] = IMREAD(…, ‘Param1’, value1, ‘Param2’, value2, …) uses
% parameter-value pairs to control the read operation. There are three
% different parameters you can use:
%
% Parameter name Value
% ————– —–
% ‘Index’ A positive integer specifying which image to read in
% a multi-image TIFF file. For example, if ‘Index’ is
% 3, IMREAD reads the third image in the file.
%
% ‘Info’ A structure array; the output of IMFINFO. When
% reading images from a multi-image TIFF file, passing
% the output of IMFINFO as the ‘Info’ parameter helps
% IMREAD locate the images in the file more quickly.
%
% ‘PixelRegion’ {ROWS, COLS}. IMREAD returns the sub-image
% specified by the boundaries in ROWS and COLS. ROWS
% and COLS must be either two- or three-element
% vectors. If two elements are provided, they denote
% the 1-based indices [START STOP]. If three elements
% are provided, the indices [START INCREMENT STOP]
% allow image downsampling.
%
% XWD — X Window Dump
%
% Supported Output
% Bitdepths ZPixmaps XYBitmaps XYPixmaps Class
% ————————————————–
% 1-bit x – x logical
% 8-bit x – – uint8
%
% Please read the file libtiffcopyright.txt for more information.
%
% Example:
%
% imdata = imread(‘ngc6543a.jpg’);
%
% See also IMFINFO, IMWRITE, IMFORMATS, FREAD, IMAGE, DOUBLE, UINT8.
% Copyright 1984-2011 The MathWorks, Inc.
% Revision: 1.1.6.22.4.1 Date: 2012/07/02 18:58:54
[filename, fmt_s, extraArgs] = parse_inputs(varargin{:});
% Download remote file.
if (strfind(filename, ‘://’))
url = true;
if (~usejava(‘jvm’))
error(message(‘MATLAB:imagesci:imread:noJava’))
end
try
filename = urlwrite(filename, tempname);
catch %#ok
error(message(‘MATLAB:imagesci:imread:readURL’, filename));
end
else
url = false;
end
if (isempty(fmt_s))
% The format was not specified explicitly.
% Verify that the file exists.
fid = fopen(filename, ‘r’);
if (fid == -1)
if ~isempty(dir(filename))
error(message(‘MATLAB:imagesci:imread:fileReadPermission’, filename));
else
error(message(‘MATLAB:imagesci:imread:fileDoesNotExist’, filename));
end
else
% File exists. Get full filename.
filename = fopen(fid);
fclose(fid);
end
% Try to determine the file type.
[format, fmt_s] = imftype(filename);
if (isempty(format))
error(message(‘MATLAB:imagesci:imread:fileFormat’));
end
else
% The format was specified explicitly.
% Verify that the file exists.
fid = fopen(filename, ‘r’);
if (fid == -1)
% Couldn’t open using the given filename; search for a
% file with an appropriate extension.
for p = 1:length(fmt_s.ext)
fid = fopen([filename ‘.’ fmt_s.ext{p}]);
if (fid ~= -1)
% The file was found. Don’t continue searching.
break
end
end
end
if (fid == -1)
if ~isempty(dir(filename))
error(message(‘MATLAB:imagesci:imread:fileReadPermission’, filename));
else
error(message(‘MATLAB:imagesci:imread:fileDoesNotExist’, filename));
end
else
filename = fopen(fid);
fclose(fid);
end
end
if isempty(fmt_s)
% Get format details.
fmt_s = imformats(format);
end
% Verify that a read function exists
if (isempty(fmt_s.read))
error(message(‘MATLAB:imagesci:imread:readFunctionRegistration’, fmt_s.ext{ 1 }));
end
if ((fmt_s.alpha) && (nargout == 3))
% Use the alpha channel.
[X, map, alpha] = feval(fmt_s.read, filename, extraArgs{:});
else
% Alpha channel is not requested or is not applicable.
alpha = [];
[X, map] = feval(fmt_s.read, filename, extraArgs{:});
end
% Delete temporary file from Internet download.
if (url)
delete_download(filename);
end
%————————————————————————–
function delete_download(filename)
try
delete(filename);
catch
warning(message(‘MATLAB:imagesci:imread:tempFileDelete’, filename))
end
%————————————————————————–
function [filename, fmt_s, extraArgs] = parse_inputs(varargin)
filename = ”;
fmt_s = struct([]);
extraArgs = {};
% Parse arguments based on their number.
switch(nargin)
case 0
% Not allowed.
error(message(‘MATLAB:imagesci:imread:inputParsing’));
case 1
% Filename only.
filename = varargin{1};
if ~ischar(filename)
error(message(‘MATLAB:imagesci:imread:badImageSourceDatatype’));
end
otherwise
% Filename and format or other arguments.
filename = varargin{1};
% Check whether second argument is a format.
if (ischar(varargin{2}))
fmt_s = imformats(varargin{2});
end
if (~isempty(fmt_s))
% The argument matches a format.
extraArgs = varargin(3:end);
else
% The argument begins the format-specific parameters.
extraArgs = varargin(2:end);
end
end
>>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194138.html原文链接:https://javaforall.cn