365bet手机网址是多少-正规365彩票平台app下载-365bet游戏开户

导入图像方法

目录 获取有关图像文件的信息 从 TIFF 文件中读取图像数据和元数据 要将图形文件中的数据导入到 MATLAB® 工作区,使用 imread 函数。使用此函数

导入图像方法

目录

获取有关图像文件的信息

从 TIFF 文件中读取图像数据和元数据

要将图形文件中的数据导入到 MATLAB® 工作区,使用 imread 函数。使用此函数可以从许多具有标准文件格式的文件中导入数据,这些文件格式包括:标记图像文件格式 (TIFF)、图形交换格式 (GIF)、联合图像专家组 (JPEG) 和可移植网络图形 (PNG) 格式。关于支持格式的完整列表,可以参考 imread 函数的使用。

以下示例将 JPEG 格式的文件中存储的图像数据以数组 I 的形式读取到 MATLAB 工作区:

I = imread('ngc6543a.jpg');

imread 将工作区中的图像表示为 uint8 类的多维数组。数组的维度取决于数据的格式。例如,imread 使用三个维度表示 RGB 颜色图像:

whos I

Name Size Bytes Class

I 650x600x3 1170000 uint8 array

Grand total is 1170000 elements using 1170000 bytes

要更大程度地控制 TIFF 文件的读取,可以使用 Tiff 对象 - 具体可以参考从 TIFF 文件中读取图像数据和元数据。

获取有关图像文件的信息

如果有标准图形格式的文件,可使用 imfinfo 函数获取有关其内容的信息。imfinfo 函数返回包含有关该文件的信息的一个结构体。结构体中的字段根据文件格式的不同而不同,imfinfo 始终返回一些基本信息,包括文件名、上次修改日期、文件大小和格式。

以下示例返回联合图像专家组 (JPEG) 格式的文件的相关信息:

info = imfinfo('ngc6543a.jpg')

info =

Filename: 'matlabroot\toolbox\matlab\demos\ngc6543a.jpg'

FileModDate: '01-Oct-1996 16:19:44'

FileSize: 27387

Format: 'jpg'

FormatVersion: ''

Width: 600

Height: 650

BitDepth: 24

ColorType: 'truecolor'

FormatSignature: ''

NumberOfSamples: 3

CodingMethod: 'Huffman'

CodingProcess: 'Sequential'

Comment: {'CREATOR: XV Version 3.00b Rev: 6/15/94 Quality =...'}

从 TIFF 文件中读取图像数据和元数据

虽然可以使用 imread 从 TIFF 文件中导入图像数据和元数据,但该函数有一些局限性。例如,TIFF 文件可以包含多个图像,并且每个图像可以有多个子图像。虽然可以使用 imread 从多图像 TIFF 文件中读取所有图像,但无法访问子图像。使用 Tiff 对象可以从 TIFF 文件中读取图像数据、元数据和子图像。构造的 Tiff 对象表示与 TIFF 文件的连接,并提供对 LibTIFF 库中的众多例程的访问。

下面的示例分步介绍了如何使用 Tiff 对象的方法和属性从 TIFF 文件读取子图像。为充分利用 Tiff 对象,请熟悉 TIFF 规范和技术说明。

从 TIFF 文件中读取子图像

TIFF 文件可以包含一个或多个图像文件目录 (IFD)。每个 IFD 都包含与图像关联的图像数据和元数据(标记)。每个 IFD 可以包含一个或多个 subIFD,后者也可以包含图像数据和元数据。这些子图像通常是包含 subIFD 的 IFD 中图像数据的降分辨率版本(缩略图)。

要读取 IFD 中的子图像,必须从 SubIFD 标记中获取子图像的位置。SubIFD 标记包含由指向子图像的字节偏移量构成的数组。然后,可以将 subIFD 的地址传递到 setSubDirectory 方法以将该 subIFD 设置为当前 IFD。大多数 Tiff 对象方法作用于当前 IFD。

​使用 Tiff 对象构造函数打开包含图像和子图像的 TIFF 文件。以下示例使用在创建 TIFF 文件子目录中创建的 TIFF 文件,该文件包含一个具有两个 subIFD 的 IFD 目录。Tiff 构造函数打开该 TIFF 文件,并将文件中的第一个 subIFD 设置为当前 IFD:

t = Tiff('my_subimage_file.tif','r'); 检索与当前 IFD 关联的 subIFD 的位置。使用 getTag 方法获取 SubIFD 标记的值。此方法将返回指定 subIFD 位置的字节偏移量数组:

offsets = getTag(t,'SubIFD') 导航到第一个子图像。首先,将 currentIFD 设为包含第一个子图像的目录:

dirNum = 1;

setDirectory(t,dirNum); 然后,使用 setSubDirectory 方法导航到第一个 subIFD。指定该 subIFD 的字节偏移量作为参数。此调用会将该 subIFD 设置为当前 IFD:

setSubDirectory(t,offsets(1)); 采用与读取文件中的任何其他 IFD 一样的方式,读取当前 IFD(第一个 subIFD)中的图像数据:

subimage_one = read(t); 查看第一个子图像:

imagesc(subimage_one) 导航到第二个子图像。首先,将 currentIFD 重置为包含第二个子图像的目录:

setDirectory(t,dirNum); 然后使用 setSubDirectory 方法导航到第二个 subIFD。指定第二个 subIFD 的字节偏移量:

setSubDirectory(t,offsets(2)); 与读取文件中的任何其他 IFD 一样,读取当前 IFD(第二个 subIFD)中的图像数据。

subimage_two = read(t); 查看第二个子图像:

imagesc(subimage_two) 关闭 Tiff 对象:

close(t);

← 上一篇: 怎样在PPT中设置出吸引人的动画效果
下一篇: 计算机病毒是如何运作的?[2025 年 10 月更新] →

相关推荐

盘点cos圈十大美男子,有你家男神吗?
农行网银转账手续费最新标准
止鼾器什么牌子好?10大止鼾器品牌排行榜
苹果待机多长时间算正常
唐七公布维权案进展 造谣《华胥引》抄袭网友道歉
吃脆山药一般炖多久会熟 山药可以怎么烹饪
保质期计算器
清的笔顺
哪些捕鱼的小游戏最好玩?十大赚钱红包捕鱼游戏推荐
1mb流量等于多少钱 – 1MB流量值几个包子钱?2025年最新流量价大起底
揭秘科特迪瓦世界杯预选赛:梦想与现实的较量,非洲雄狮能否再次腾飞?
什么是渤海国?