【问题标题】:How can pixel size be set for tiff images saved using python so that the pixel height and width are set to particular values in ImageJ?如何为使用 python 保存的 tiff 图像设置像素大小,以便将像素高度和宽度设置为 ImageJ 中的特定值?
【发布时间】:2021-12-04 10:18:36
【问题描述】:

有许多方法 {PIL、opencv、tifffile 等} 可用于从 numpy 数组创建 tiff 图像文件。如何为使用python保存的tiff图像设置像素大小,以便像素高度和宽度在ImageJ中具有特定值?

在 ImageJ 中打开 tiff 图像时,Ctrl+Shift+P 打开图像属性窗口,例如:

有 tiff 标签,包括 XResolution、YResolution、ResolutionUnit、PixelXDimension、PixelYDimension 等。如果有的话,哪些可以用来设置保存图像的属性,以便 ImageJ 使用指定的像素宽度和高度?哪些包允许在保存过程中设置此类标签?

【问题讨论】:

  • 这些参数在 ImageJ 中有什么作用?
  • 如果单位是像素,那么像素宽度 = 像素高度 =1。如果单位是英寸,则像素大小可能是以每英寸像素为单位的倒置分辨率。因此,如果所需的分辨率为 72 dpi,则像素宽度 = 像素高度 = 1/72 英寸/像素。

标签: python tiff imagej


【解决方案1】:

tifffile 的创建者 Christoph Gohlke 好心地教了我两件事:

  1. 如果将 resolution 元组传递给 tifffile.imsave,

    tifffile 将设置 XResolution、YResolution 和 ResolutionUnit 标签。在 Jenny Folkesson 的 What is the best way to save image metadata alongside a tif? 的基础上,我添加了一个解析元组

    tifffile.imsave(
    my_tiff,
    float64_im.astype('float32'),
    ijmetadata=ijmetadata,
    description=description,
    extratags=extra_tags,
    resolution=(1/pixel_pitch_in_cm, 1/pixel_pitch_in_cm, 'CENTIMETER'))
    
  2. ImageJ 不会轻易打开具有 64 位浮点数据的 tiff。解决方法是将图像转换为“float32”,然后再将其传递给 tifffile.imsave。

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 2019-08-06
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多