python - 有没有办法覆盖 tif 文件的“ImageDescription”?
问题描述
我正在对 .tif 射线照片进行一些修改,这是进一步分析所必需的。然而,进一步的分析(在专有软件中......)期望在这些射线照片的标题中准确找到该字段:
'ImageDescription': '斜率 = 2.13626E-05 \roffset = 0.00000E+00',
因为斜率和偏移量最终是重要的参数。
我用 tifffile(从 skimage.io 调用)保存修改后的 .tifs:
tifffile.imsave(outname, modified_image))
现在,当阅读这些小说 .tif 并查看标题时,“ImageDescription”字段有很多信息:
'ImageDescription': '{"shape": [789, 960]}', 'StripOffsets': (304,), 'SamplesPerPixel': 1, 'RowsPerStrip': 789, 'StripByteCounts': (1514880,), 'XResolution ': (1, 1), 'YResolution': (1, 1), 'ResolutionUnit': <RESUNIT.NONE: 1>, '软件': 'tifffile.py'}
但我想用我之前提到的短字符串替换所有这些。我发现的最有希望的功能是:
tifffile.imsave(outname, modified_image, description='slope = 2.13626E-05 \roffset = 0.00000E+00'))
然而,这似乎不起作用。它不会引发错误,但读取文件“outname”并探测其标题,它仍然是我不想要的长字典,并且没有提及我想要的字符串。
通过尝试,我最终提出了“ImageDescription”形式的错误,不能用字符串填充,这让我感到震惊,因为“imsave”和“description”字段应该精确地用字符串填充“ImageDescription”......
有人会了解正在发生的事情并知道解决方法吗?
解决方案
编辑图像中元数据的最有效工具可能是exiftool
,所以你可以这样做:
exiftool -Description='slope = 2.13626E-05 \roffset = 0.00000E+00' image.tif
推荐阅读
- reactjs - 组件状态中的 LocalStorage
- php - 如何从最小值获取关联的行数据
- docker - dind:注册表镜像被忽略
- docker - 允许一个带有 docker 的私有注册表
- node.js - wget() 到 /tmp/wget 产生“EMFILE,打开的文件太多”
- neo4j - WITH 语句的 Neo4j 语法
- multithreading - 'perlbrew list-modules' 确实返回 'Perl' 而没有别的
- powershell - 将 diskpart 与 PowerShell 一起使用
- javascript - 猫头鹰轮播“navText:”不添加箭头
- javascript - 如何在javascript中合并两个嵌套对象