Main Content

readRGBATile

使用 RGBA 接口读取图块数据

说明

示例

[RGB,alpha] = readRGBATile(t,row,col) 使用 RGBA 接口从与 Tiff 对象 t 关联的 TIFF 文件中读取图块。该图块由 rowcol 指定,它们是所请求图块中任一像素的从 1 开始的行号和列号。

readRGBATile 函数剪除图块中超出 ImageLengthImageWidth 边界的区域。因此,来自图像底边缘或右边缘的图块的图像数据可能具有不同维度。

示例

全部折叠

使用 RGBA 接口从 TIFF 图像文件读取数据图块。

为图像文件创建一个 Tiff 对象。

t = Tiff('peppers_RGB_tiled.tif','r');

获取图块数量和图块大小。

numTiles = numberOfTiles(t)
numTiles = 36
tileSize = [getTag(t,'TileLength') getTag(t,'TileWidth')]
tileSize = 1×2

    32    48

从图像中读取包含第 100 行和第 100 列的图块。readRGBATile 函数剪除图块中超出 ImageLengthImageWidth 边界的区域。因此,来自图像右边缘或底边缘的图块的图像数据可能具有不同维度。

row = 100;
col = 100;
[RGB,A] = readRGBATile(t,row,col);

显示图像。

imshow(RGB,'InitialMagnification','fit') % magnify for display

Figure contains an axes object. The axes object contains an object of type image.

关闭 Tiff 对象。

close(t);

输入参数

全部折叠

代表 TIFF 文件的 Tiff 对象。使用 Tiff 函数创建该对象。

行号,指定为正整数。指定 row 作为图块中任一像素的从 1 开始的行索引。

示例: 100

数据类型: double

列号,指定为正整数。指定 col 作为图块中任一像素的从 1 开始的列索引。

示例: 57

数据类型: double

输出参数

全部折叠

图像图块数据,以 m×n×3 数值数组形式返回。其中 mn 分别为图块的高度和宽度。

TileLength 标记中的值决定图块数据中的行数,TileWidth 标记中的值确定列数。

readRGBATile 函数可以根据下列标记中的设定来转换像素值:

PhotometricInterpretation
BitsPerSample
SamplesPerPixel
Orientation
ExtraSamples
ColorMap

与图像图块关联的 alpha 抠图,以数值数组形式返回。alpha 抠图数据中的行数和列数与图块数据相同。

如果图像没有相关的 alpha 抠图,则 alpha 是其所有值都设为 255(透明)的矩阵。

算法

全部折叠

参考

此函数对应于 LibTIFF C API 中的 TIFFReadRGBATile 函数。要使用此函数,您必须熟悉 TIFF 规范和技术说明。请访问 LibTIFF - TIFF 库和实用工具查看此文档。

版本历史记录

在 R2009b 中推出