如何读取tif格式文件(基于PIL)

发布时间:2024年01月04日

背景介绍

在许多机器学习的任务中,大多数图像类型的训练数据集会以tif的格式储存,在这种情况下,如何读取tif格式的数据就至关重要


tif格式

TIF(Tagged Image File Format)格式,也被称为TIFF,是一种灵活的位图格式,主要用于存储包括照片和艺术图像在内的各种类型的图片。TIF格式最早在1986年由Aldus公司为高分辨率打印机进行开发。现在它的所有权属于Adobe。 下面是一些关于TIF格式的关键特性:

  • ?Lossless Compression:TIF文件可以使用无损压缩,这意味着在压缩和解压缩过程中,图像的质量不会因此受损。
  • ?High Quality:由于TIF支持无损压缩,因此它可以保存高质量的图像数据,这使其成为专业级或商业级图像的理想选择。
  • Color Depth:TIF格式支持多种颜色深度,包括黑白(1bit)、灰度(8bit)、真彩色(24bit)、甚至是48bit或更高。
  • Large File Size:由于TIF格式关注图像质量,所以在使用无损压缩或者没有压缩的情况下,TIF文件通常会有较大的文件大小。
  • Metadata:TIF格式支持丰富的元数据,包含但不限于日期、时间、作者、版权、摄影设备信息等。
  • Multiple Pages:TIF格式文件支持存储多页图像,这使得一些扫描软件喜欢使用此格式储存多页扫描结果。 在实际使用中,TIF格式被广泛应用于各种需要高质量图片的领域,例如出版、摄影、打印和设计等。

tif格式文件的读取

这里使用python的PTL库对tif格式的文件进行读取

环境依赖的库

from PIL import Image # 读取tif格式文件
import numpy as np    # 将PIL.Image转换为numpy类型
import matplotlib.pyplot as plt  # 对图像进行可视化

我们这里读取的是进行视网膜血管分隔的训练数据集,图像以tif格式储存

data_path = r"你的tif格式文件路径"
data = Image.open(data_path)
print(data)

输出结果

<PIL.TiffImagePlugin.TiffImageFile image mode=RGB size=565x584 at 0x1FA40F099D0>

这样不太直观,我们把数据转换成numpy类型打印出tif格式图像的形状

data_np = np.array(data)
print(data_np.shape)

结果输出

(584, 565, 3)

可以直观地看到读取的tif是一个584\times 565像素的三通道图像

可视化

我们对读取的数据进行显示看看

plt.imshow(data)
plt.show()

注意这里plt.imshow可以直接显示PIL.Image格式的数据,同样可以传入转换为numpy格式的数据进行可视化

欢迎大家讨论交流~


文章来源:https://blog.csdn.net/weixin_57506268/article/details/135371197
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。