writeEncodedTile
将数据写入到指定的图块
说明
writeEncodedTile(
将 t
,tileNumber
,imageData
)imageData
中的数据写入到与 Tiff
对象 t
关联的 TIFF 文件中由 tileNumber
指定的图块中。
示例
将图像图块写入到 TIFF 文件中
从一个 TIFF 文件中读取两个图块,并将它们写入到另一个新 TIFF 文件中的不同位置。
打开具有分块布局的图像数据的 TIFF 文件,获取图像数据和图像中的图块数。
tr = Tiff('peppers_RGB_tiled.tif','r'); imageR = read(tr); nTiles = numberOfTiles(tr)
nTiles = 36
读取图像的第 8 个和第 29 个图块。
tile8 = readEncodedTile(tr,8); tile29 = readEncodedTile(tr,29);
为新文件创建一个 Tiff
对象,并从第一个文件中复制图像和标记信息。
tw = Tiff('write_tile.tif','w'); tagstruct.ImageLength = getTag(tr,'ImageLength'); tagstruct.ImageWidth = getTag(tr,'ImageWidth'); tagstruct.Photometric = getTag(tr,'Photometric'); tagstruct.TileLength = getTag(tr,'TileLength'); tagstruct.TileWidth = getTag(tr,'TileWidth'); tagstruct.BitsPerSample = getTag(tr,'BitsPerSample'); tagstruct.SamplesPerPixel = getTag(tr,'SamplesPerPixel'); tagstruct.PlanarConfiguration = getTag(tr,'PlanarConfiguration'); setTag(tw,tagstruct); write(tw,imageR)
在图块 8 的位置写入 tile29
,在图块 29 的位置写入 tile8
。
writeEncodedTile(tw,8,tile29); writeEncodedTile(tw,29,tile8);
读取新图像并与原图像并排显示。
imageW = read(tw); subplot(121); imshow(imageR); title('Original Image') subplot(122); imshow(imageW); title('Tiles Shuffled Image')
关闭 Tiff
对象。
close(tr); close(tw);
将图像图块写入到 YCbCr TIFF 文件中
从一个 YCbCr TIFF 文件中读取两个图块,并将它们写入到另一个新 TIFF 文件中的不同位置。
打开具有分块布局的图像数据的 TIFF 文件,获取图像数据和图像中的图块数。
tr = Tiff('peppers_YCbCr_tiled.tif','r'); [Yr,Cbr,Crr] = read(tr); nTiles = numberOfTiles(tr)
nTiles = 36
读取图像的第 8 个和第 29 个图块。
[Y8,Cb8,Cr8] = readEncodedTile(tr,8); [Y29,Cb29,Cr29] = readEncodedTile(tr,29);
为新文件创建一个 Tiff
对象,并从第一个文件中复制图像和标记信息。
tw = Tiff('write_tile.tif','w'); tagstruct.ImageLength = getTag(tr,'ImageLength'); tagstruct.ImageWidth = getTag(tr,'ImageWidth'); tagstruct.SampleFormat = getTag(tr,'SampleFormat'); tagstruct.Photometric = getTag(tr,'Photometric'); tagstruct.TileLength = getTag(tr,'TileLength'); tagstruct.TileWidth = getTag(tr,'TileWidth'); tagstruct.BitsPerSample = getTag(tr,'BitsPerSample'); tagstruct.SamplesPerPixel = getTag(tr,'SamplesPerPixel'); tagstruct.YCbCrSubSampling = getTag(tr,'YCbCrSubSampling'); tagstruct.Compression = getTag(tr,'Compression'); tagstruct.PlanarConfiguration = getTag(tr,'PlanarConfiguration'); setTag(tw,tagstruct); write(tw,Yr,Cbr,Crr)
在图块 8 的位置写入图块 29
,在图块 29 的位置写入图块 8
。
writeEncodedTile(tw,8,Y29,Cb29,Cr29); writeEncodedTile(tw,29,Y8,Cb8,Cr8);
读取新图像的 Y 分量并与原图像并排显示。
[Yw,Crw,Cbw] = read(tw); subplot(121); imshow(Yr); title('Original Image (Y)') subplot(122); imshow(Yw); title('Tiles Shuffled Image (Y)')
关闭 Tiff
对象。
close(tr); close(tw);
输入参数
t
— Tiff 对象
Tiff
对象
代表 TIFF 文件的 Tiff
对象。使用 Tiff
函数创建该对象。
tileNumber
— 图块编号
正整数
图块编号,指定为正整数。图块编号是从 1 开始的数字。
示例: 15
数据类型: double
imageData
— 图像数据
数值数组
图像数据,指定为数值数组。
如果
imageData
的字节数少于图块的大小,则writeEncodedTile
将以静默方式填充图块。如果
imageData
的字节数大于图块的大小,则writeEncodedTile
会发出警告并截断数据。
要查看图像图块的大小,请获取 TileLength
和 TileWidth
标记的值。
数据类型: double
Y
— 亮度分量
数值数组
图像图块的亮度分量,指定为二维数值数组。
数据类型: double
Cb
— 蓝差色度分量
数值数组
图像图块的蓝差色度分量,指定为二维数值数组。
数据类型: double
Cr
— 红差色度分量
数值数组
图像图块的红差色度分量,指定为二维数值数组。
数据类型: double
算法
参考
此函数对应于 LibTIFF C API 中的 TIFFWriteEncodedTile
函数。要使用此函数,您必须熟悉 TIFF 规范和技术说明。请访问 LibTIFF - TIFF 库和实用工具查看此文档。
版本历史记录
在 R2009b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)