Python读取TIFF文件头integrationLevel字段返回None问题求助
解决TIFF文件integrationLevel字段读取返回None的问题
你的问题出在自定义TIFF标签的获取方式不对——tifffile库不会自动将integrationLevel映射为缩写il作为标签键,直接用tags.get('il')自然拿不到对应字段。
第一步:排查目标标签的真实标识
先运行这段代码,打印目标TIFF文件的所有标签,找到integrationLevel对应的标签ID或完整名称:
import tifffile file_path = "你的TIFF文件路径" with tifffile.TiffFile(file_path) as tif: page = tif.pages[0] # 打印所有标签的ID、名称和值 for tag_id, tag in page.tags.items(): print(f"ID: {tag_id}, 名称: {tag.name}, 值: {tag.value}")
运行后,在输出里找到包含integrationLevel的条目,记下它的标签ID或者完整名称。
第二步:修改代码读取目标字段
假设排查后发现integrationLevel对应的标签ID是65000(实际以你的输出为准),修改原代码如下:
import os import tifffile folder_path = "Origin file" for filename in os.listdir(folder_path): if filename.lower().endswith((".tif", ".tiff")): file_path = os.path.join(folder_path, filename) with tifffile.TiffFile(file_path) as tif: page = tif.pages[0] # 用找到的标签ID或名称获取字段 # 示例:如果是ID=65000 integration_tag = page.tags.get(65000) # 如果是完整名称则用page.tags.get('integrationLevel') if integration_tag: # 根据实际值的格式计算(如果是分数形式的元组) integration = integration_tag.value[0] / integration_tag.value[1] print(f'{filename} - integration: {integration}') else: print(f'{filename} - 未找到integrationLevel字段')
补充说明
- 很多工业相机或自定义生成的TIFF会用私有数字ID存储自定义元数据,不会用易读的字符串键,所以必须先排查真实标识。
- 可以用
tifffile的tag_names属性查看预定义的标签映射,但自定义标签不在其中,必须手动遍历确认。
内容的提问来源于stack exchange,提问作者Neko Lim
相关产品推荐
相关产品推荐

