首页 > 解决方案 > 有没有办法覆盖 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”......

有人会了解正在发生的事情并知道解决方法吗?

标签: pythonpython-imaging-librarymetadatatiffscikit-image

解决方案


编辑图像中元数据的最有效工具可能是exiftool,所以你可以这样做:

exiftool -Description='slope = 2.13626E-05 \roffset = 0.00000E+00' image.tif

推荐阅读