2016-06-15 46 views
6

sto usando openslide-python per aprire l'immagine di un svs, e ho incontrato il seguente problema:non supportato TIFF Compressione

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

cede l'errore

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 

non sono stato in grado di trovare eventuali soluzioni online per questo problema; Ho controllato l'libopenjpeg e tutte le altre librerie pertinenti per assicurarmi che siano alle loro ultime versioni rispettive.

+0

Si potrebbe desiderare di presentare un problema a [loro issue tracker] (https://github.com/openslide/openslide -python/problemi). – Trilarion

+2

Sembra che il formato svs sia una variante del TIFF standard. In questo caso, i file TIFF possono contenere immagini di vari tipi di compressione. Se altri file svs funzionano ma non questo, il problema potrebbe essere correlato alla compressione. Per ulteriori dettagli sui sottotipi di compressione TIFF, vedere la risposta a questo post: http://stackoverflow.com/questions/28355389 –

+2

Si prega di fornire l'ambiente di esecuzione significa sistema operativo e libtiff, versioni libjpeg –

risposta

5

Se si guarda il codice: 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; 
} 

Vedrete che usa libtiff: la funzione TIFFIsCODECConfigured è fornita dal sottostante libtiff libreria (vedi man page).

Il tag di compressione è impostato su 7; questo è lo schema di compressione JPEG ('new-style' JPEG) non comunemente supportato, talvolta denominato anche JPEG-in-TIFF; per cui è necessario installare un codec.

Se le diapositive sono ancora utilizzate e utilizzate ad es. Kodak Imaging, quindi potresti essere in grado di scansionarli di nuovo con una compressione diversa; ma quello sarebbe un modo back-and-around. Probabilmente è più facile provare e aggiungere il codec e abilitarlo in libtiff.

Da libtiff documentation:

supporto per la compressione JPEG è controllato da JPEG_SUPPORT. Il codec JPEG fornito con libtiff è progettato per essere utilizzato con la versione 5 o successiva della distribuzione del software liberamente disponibile di Independent JPEG Group. Questo software può essere recuperato dalla directory ftp.uu.net:/graphics/jpeg/.

Così il supporto è opzionale, e potrebbe essere necessario ricostruire libtiff (vedi instructions).

Per impostazione predefinita, il supporto JPEG non è configurato.

Riferimenti:

+0

Grazie per la tua risposta superba! –