不支持的TIFF压缩

时间:2016-06-15 06:19:13

标签: python image tiff openslide

我正在使用openslide-python打开svs图片,我遇到了以下问题:

>> import openslide as osi
>> a = osi.OpenSlide('image.svs')

产生错误

TIFFReadDirectory: Warning, Unknown field with tag 347 (0x15b) encountered.
image.svs: JPEG compression support is not configured.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/manan/anaconda/lib/python2.7/site-packages/openslide/__init__.py", line 154, in __init__
    self._osr = lowlevel.open(filename)
  File "/home/manan/anaconda/lib/python2.7/site-packages/openslide/lowlevel.py", line 178, in _check_open
    raise OpenSlideError(err)
openslide.lowlevel.OpenSlideError: Unsupported TIFF compression: 7

我无法在网上找到任何解决此问题的方案;我已经检查了libopenjpeg以及任何其他相关库,以确保它们处于最新版本。

1 个答案:

答案 0 :(得分:5)

如果你看一下代码: https://github.com/openslide/openslide/blob/7b99a8604f38280d14a34db6bda7a916563f96e1/src/openslide-vendor-generic-tiff.c#L222-L226

if (!TIFFIsCODECConfigured(compression)) {
  g_set_error(err, OPENSLIDE_ERROR, OPENSLIDE_ERROR_FAILED,
              "Unsupported TIFF compression: %u", compression);
  goto FAIL;
}

您会看到它使用libtiff:函数TIFFIsCODECConfigured由基础libtiff库提供(请参阅man page)。

压缩标记设置为7;这是不常见的JPEG ('new-style' JPEG)压缩方案 - 有时也称为JPEG-in-TIFF;您需要为其安装编解码器。

如果您还有幻灯片,请使用例如柯达成像,然后您可以使用不同的压缩再次扫描它们;但这将是一种反复的方式。尝试添加编解码器并在libtiff中启用它可能更容易。

来自libtiff documentation

  

支持JPEG压缩由JPEG_SUPPORT控制。 libtiff附带的JPEG编解码器设计用于Independent JPEG Group的免费软件发行版的第5版或更高版本。可以从ftp.uu.net:/graphics/jpeg /.

目录中检索该软件

因此支持是可选的,您可能需要重建libtiff(请参阅instructions)。

  

默认情况下,未配置JPEG支持。

参考文献: