gpt4 book ai didi

matlab - 在 Matlab 中读取和查看大 tiff

转载 作者:行者123 更新时间:2023-12-02 08:23:11 28 4
gpt4 key购买 nike

我从下面的链接下载了一个 btf 文件(大 tiff),我如何读取它并“显示”它?有没有办法将它转换为 tiff 格式,因为 btf 并不常见?

链接:

https://drive.google.com/file/d/0ByhuP_NuuARtSW9aeTdPUTlRdWM/view?usp=drive_web

http://www.photomacrography.net/forum/viewtopic.php?t=28990&sid=cca737a2e0bc7ea3e2e41f0d6e75f5a9

我使用了这段代码:

t = Tiff('d:/Image_687.btf','w8');
imageData = read(t);

得到这个错误:

Error using tifflib Unable to retrieve PhotometricInterpretation.

Error in Tiff/getTag (line 838) tagValue = tifflib('getField',obj.FileID,Tiff.TagID.(tagId));

Error in Tiff/read (line 1487) photo = obj.getTag('Photometric');

Error in Untitled2 (line 2) imageData = read(t);

最佳答案

您的代码的真正问题是您传递给 Tiff 的第二个参数。作为documentation states,第二个参数表示以何种模式打开文件。您已指定 w8,文档中指出的是:

open TIFF file for writing a BigTIFF file; discard existing contents.

这意味着它甚至在您开始之前就删除了您的图像!如果您想使用 Tiff 类,您需要不使用第二个参数或使用 r 参数来打开文件进行读取。

t = Tiff('Image_687.btf');
t = Tiff('Image_687.btf', 'r');

话虽这么说,但通常最好尝试使用更高级别的函数加载它,例如 imread . Tiff 类是一个低得多的函数,可能更难操作,但可以提供一些所需的特殊功能。

 im = imread('Image_687.btf');
size(im)

3072 4080 3

我不得不为显示做一些操作,因为 RGB 值不在 0 到 255 之间

im = double(im);
im = uint8(255 * im ./ max(im(:)));
imshow(im);

Resulting Image

关于matlab - 在 Matlab 中读取和查看大 tiff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34798113/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com