2016-06-15 33 views
6

I openslide-python bin mit einem svs Bild zu öffnen, und ich habe in das folgende Problem führen:Nicht unterstützte TIFF Kompression

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

ergibt den Fehler

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 

Ich habe nicht in der Lage gewesen, Finden Sie online Lösungen für dieses Problem. Ich habe libopenjpeg und alle weiteren relevanten Bibliotheken überprüft, um sicherzustellen, dass sie die jeweils neueste Version haben.

+0

Sie könnten ein Problem in Datei auf [ihre issue tracker] wollen (https://github.com/openslide/openslide -python/Probleme). – Trilarion

+2

Es scheint, dass das SVS-Format eine Variation des Standard-TIFF ist. Wenn dies der Fall ist, können TIFF-Dateien Bilder verschiedener Komprimierungstypen enthalten. Wenn andere svs-Dateien funktionieren, aber nicht diese, könnte das Problem mit der Komprimierung zusammenhängen. Weitere Informationen zu TIFF-Komprimierung Untertypen finden Sie in der Antwort auf diesen Beitrag: http://StackOverflow.com/Questions/28355389 –

+2

Bitte geben Sie die laufende Umgebung bedeutet Betriebssystem, und libtiff, libjpeg Versionen –

Antwort

5

Wenn Sie den Code anschauen: 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; 
} 

Sie werden sehen, dass es libtiff verwendet: die Funktion TIFFIsCODECConfigured wird durch die zugrunde liegende libtiff Bibliothek zur Verfügung gestellt (siehe man page).

Das Komprimierungstag ist auf 7 gesetzt; Dies ist das ungewöhnlich unterstützte JPEG ('new-style' JPEG) Komprimierungsschema - manchmal auch als JPEG-in-TIFF bezeichnet; für die Sie einen Codec installieren müssen.

Wenn Sie noch die Folien haben und z. Kodak Imaging, dann können Sie sie möglicherweise erneut mit einer anderen Komprimierung scannen; aber das wäre ein Rück- und Umweg. Es ist wahrscheinlich einfacher zu versuchen, den Codec hinzuzufügen und in libtiff zu aktivieren.

Von libtiff documentation:

Unterstützung für JPEG-Komprimierung wird durch JPEG_SUPPORT gesteuert. Der JPEG-Codec, der mit libtiff geliefert wird, ist für die Verwendung mit Release 5 oder später der frei verfügbaren Softwareverteilung der Independent JPEG Group vorgesehen. Diese Software kann aus dem Verzeichnis ftp.uu.net:/graphics/jpeg/ abgerufen werden.

So ist die Unterstützung ist optional, und Sie können libtiff (siehe instructions) neu erstellen müssen.

Standardmäßig ist die JPEG-Unterstützung nicht konfiguriert.

Referenzen:

+0

Vielen Dank für eine hervorragend recherchierte Antwort! –