赞
踩
目录
在MATLAB中,对图像进行操作和处理时,经常需要知道图像文件的文件名、文件格式、图像大小、图像类型、数据类型等信息,可以直接调用MATLAB函数imfinfo()来读取图像文件的信息。其调用格式如下:
INFO = imfinfo('文件名','fmt') 或者 INFO = imfinfo('文件名.fmt')
该函数是读取文件 文件名.fimt 的信息。其中,fmt指的是该文件的“扩展名”,INFO是一个结构数组。imfinfo()
函数是MATLAB中用于读取图像文件的信息的函数。它返回一个结构数组,其中包含有关图像文件的各种信息。结构数组中的每个元素都包含有关图像文件的一组信息。
以下是imfinfo()
返回的结构数组的基本内容:
File Information:
FileName
: 图像文件的名称。FileFormat
: 图像文件的格式。FileInFormat
: 图像文件中包含的子格式。FileOutFormat
: 可用于写入图像文件的格式。FileType
: 图像文件的类型。FileClass
: 图像文件的类别(例如,uint8、uint16、double等)。Compression
: 图像文件的压缩类型(例如,无压缩、JPEG压缩等)。Image Information:
ImageWidth
: 图像的宽度(以像素为单位)。ImageHeight
: 图像的高度(以像素为单位)。ImageDepth
: 图像的深度(例如,2D、3D等)。ImageSize
: 图像的大小(以字节为单位)。ImageDataType
: 图像数据的类型(例如,uint8、uint16、double等)。Channel Information:
Channels
: 图像的通道数。BitDepth
: 每个通道的位深度。Image Storage Information:
ByteOrder
: 图像数据的字节顺序(例如,大端、小端等)。ByteAlignment
: 图像数据的字节对齐方式。Image Processing Information:
Gamma
: 图像的伽马值。WhiteBalance
: 图像的白平衡类型。EXIF Information:
EXIF
结构的子字段中。IPTC Information:
IPTC
结构的子字段中。Image Structure Metadata:
ImageStructure
结构的子字段中。Other Information:
其他信息可能包括有关图像的其他特定信息,例如创建时间、修改时间等。这些信息根据不同的图像格式而有所不同,但基本都包含前9个结构成员:
Fienamer 文件名称
FileoDater 文件最后修改日期和时间《日-月-年 时:分:秒)
FileSizer 文件大小(单位是字节)
Fommate 文件格式或扩展名(tif、jpg png等)
FormatVersione 文件格式版本号
Widthe 图像文件的宽度,单位为像素
Height 图像文件的高度,单位为像素
BitDepthe 图像文件中每一个像素所占位宽《真彩色图像每个像素占24位)
ColorIyper 图像类型(grayscale-灰度图像,truecolor-RGB图像,imdexed-索引图像)
在MATLAB中,图像文件的读取最主要的是利用函数imread(),该函数几乎支持MATLAB中所有的图像文件格式。根据所读取图像格式的不同以及图像类型的不同,该函数的调用格式也各不相同。
MATLAB 可以使用 imread 函数来读取图像文件。imread 函数支持多种图像文件格式,包括 JPEG、PNG、BMP、TIFF 等。要使用不同的文件格式,只需将文件名中的扩展名更改为所需的格式即可。
image = imread('filename.fmt')
或 (filename.fmt!)
:这是使用 imread
读取图像的基本形式。需要将 'filename.fmt'
替换为要读取的图像文件的实际名称和扩展名。如果图像文件不在 MATLAB 的当前工作目录下,需要提供完整的文件路径。
- % 如果图像文件在当前工作目录下,可以直接使用文件名
- img = imread('image.jpg');
-
- % 如果图像文件不在当前工作目录下,需要提供完整的文件路径
- img = imread('C:/Users/username/Documents/image.png');
[X, map] = imread('filename', 'fmt')
或 (filename.fmt')
:这种形式会同时返回图像矩阵 X
和颜色映射 map
。这通常用于处理 RGB 图像,其中 X
是一个 MxNx3 的三维数组,表示图像的每个像素,而 map
是一个包含颜色信息的向量。
- % 读取图像文件,同时返回图像矩阵 X 和颜色映射 map
- [X, map] = imread('image.jpg');
(...)
或 (..., 'Param1', value1, 'Param2', value2, ...)
:这些是参数形式的 imread
,可以用来设置一些额外的选项。例如,您可以指定要读取的图像帧的索引,或者设置背景颜色等。具体的参数和设置取决于您要读取的图像类型和您需要进行的操作。
- % 读取图像的第 3 帧和第 5 到 7 帧,并设置背景颜色为白色
- img = imread('animation.gif', 'frames', [3 5:7], 'BackgroundColor', 'white');
[...]=imread('URL')
:这是用于从指定的 URL 读取图像的形式。你需要将 'URL'
替换为你要读取的图像的 URL。
- % 从 URL 读取图像
- img = imread('http://example.com/image.jpg');
注意,imread
只能读取图像文件的内容,而不包括图像的元数据。如果你需要读取图像的元数据,可以使用 dir
函数来获取文件信息。
- % 获取图像文件的宽度和高度信息
- info = dir('image.jpg');
- width = info.Width;
- height = info.Height;
这些特殊的图像格式读取方式,可以让你更灵活地读取和处理图像。
imread('filename', idx)
:这种格式可以读取图像文件的一部分。你需要提供要读取的图像文件名('filename')和索引('idx')。索引从1开始,表示第一个帧。例如:
imread('example.gif', 3)
将读取'example.gif'的第3帧。
imread(..., 'frames', idx)
:这种格式可以读取多帧图像文件的一部分。你需要提供要读取的图像文件名和索引('idx')。索引可以是向量,表示要读取的帧的范围。例如: imread('example.gif', 'frames', [1 3])
将读取'example.gif'的第1帧和第3帧。
imread(..., 'BackgroundColor', BG)
:这种格式可以在读取图像时指定背景颜色。你需要提供要读取的图像文件名和其他参数,并在它们之间插入'BackgroundColor'和背景颜色值('BG')。例如:
imread('example.png', 'BackgroundColor', 'white')
将把'example.png'的背景颜色设为白色。
imread('filename', ref)
:这种格式可以读取参照图像。你需要提供要读取的图像文件名('filename')和参照图像('ref')。参照图像是一个已经存在的图像矩阵,用于对读取的图像进行对齐或配准。例如:
imread('example.jpg', ref)
将把'example.jpg'对齐到参照图像'ref'。
imread(..., 'Param1', value1, 'Param2', value2, ...)
:这种格式可以设置其他参数。你需要提供要读取的图像文件名和其他参数,并在它们之间插入参数名称和值。例如: imread('example.tif', 'Compression', 'Deflate')
将把'example.tif'的压缩方式设为Deflate。
在 MATLAB 中,imwrite
函数用于将图像数据写入到文件中。该函数的调用格式有以下几种:
imwrite(X, 'filename.fmt'):将图像数据矩阵 X 写入到名为 'filename.fmt' 的文件中。其中,'fmt' 表示图像文件的格式,例如 '.jpg'、'.png'、'.bmp' 等。
- img = imread('input.jpg'); % 读取图像文件
- imwrite(img, 'output.png'); % 将图像数据矩阵写入到 output.png 文件中
将读取名为 'input.jpg' 的图像文件,将其存储为图像数据矩阵 img。然后,使用 imwrite 函数将该图像数据矩阵写入到名为 'output.png' 的文件中。
imwrite(X, 'filename.fmt', 'Param1', value1, 'Param2', value2, ...):这是带有参数形式的 imwrite
函数调用。除了指定图像数据矩阵 X 和文件名之外,还可以设置其他参数,例如压缩质量、色彩空间等。这种形式允许您对写入操作进行更多的控制。
- img = imread('input.jpg'); % 读取图像文件
- imwrite(img, 'output.jpg', 'Quality', 90, 'Compression', 'JPEG'); % 将图像数据矩阵写入到 output.jpg 文件中,并设置压缩质量为 90%,使用 JPEG 压缩算法
将读取名为 'input.jpg' 的图像文件,将其存储为图像数据矩阵 img。然后,使用带有参数形式的 imwrite 函数将该图像数据矩阵写入到名为 'output.jpg' 的文件中,并设置压缩质量为 90%,使用 JPEG 压缩算法进行压缩。
imwrite(X, 'filename.fmt', 'quality', value):使用指定的质量值来写入图像文件。这对于 JPEG 格式的图像特别有用,可以通过调整质量参数来控制图像的压缩比。
- img = imread('input.jpg'); % 读取图像文件
- imwrite(img, 'output.jpg', 'Quality', 90); % 将图像数据矩阵写入到 output.jpg 文件中,并设置压缩质量为 90%
将读取名为 'input.jpg' 的图像文件,将其存储为图像数据矩阵 img。然后,使用带有参数形式的 imwrite 函数将该图像数据矩阵写入到名为 'output.jpg' 的文件中,并设置压缩质量为 90%。
imwrite(X, 'filename.fmt', 'colormap', map):将指定的颜色映射 map 应用到图像数据矩阵 X 上,并将其写入到文件中。这通常用于将彩色图像写入到单色图像文件中。
- img = imread('input.png'); % 读取彩色图像文件
- gray_img = rgb2gray(img); % 将彩色图像转换为灰度图像
- imwrite(gray_img, 'output.bmp', 'colormap', 'gray'); % 将灰度图像数据矩阵写入到 output.bmp 文件中,并设置颜色映射为灰度
将读取名为 'input.png' 的彩色图像文件,将其转换为灰度图像并存储为 gray_img。然后,使用 imwrite 函数将该灰度图像数据矩阵写入到名为 'output.bmp' 的文件中,并设置颜色映射为灰度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。