Доброго всем вечера,
Столкнулся для себя с нестандартной проблемой - надо посмотреть файлы DICOM.
Дали CD-диск с файлами AUTORUN.INF CDVIEWER.EXE CDVIEWER.JAR DICOMDIR
в корне, дирами A и вложенной в нее дирой B в которой находятся
собственно DICOM-файлы. Это все дело прислали мне эл. почтой.
> $ file AUTORUN.INF
> AUTORUN.INF: Microsoft Windows Autorun file.
> $ file CDVIEWER.EXE
> CDVIEWER.EXE: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
> $ file DICOMDIR
> DICOMDIR: DICOM medical imaging data
> file A00
> A00: DICOM medical imaging data
Нашел в дистре сквизи такие пакеты:
~$ aptitude search dicom
i dicom3tools - DICOM medical image files
manipulation and
i dicomnifti - конвертирует файлы DICOM в формат
NIfTI
i dicomscope - The OFFIS DICOM Viewer
i python-dicom - DICOM medical file reading and
writing
Установил их.
Пытаюсь открыть файлы в dicomscope - ничего не открывает, пишет - Load
Failed.
Не совсем правда понимаю, что грузить, пытался грузить и сами
dicom-файлы, и файл DICOMDIR - без толку.
В Process Log в окошке дикомдира никакого лога при этом не вижу.
Пытаюсь исполнить strace dicomscope, лается на то, что:
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/tls",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../lib/amd64/jli",
> {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/tls",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/bin/../jre/lib/amd64/jli",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/tls", 0x7fff6f258be0)
> = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libz.so.1", O_RDONLY)
> = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server",
> {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls/x86_64", 0x7fff6f258be0)
> = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls/libz.so.1", O_RDONLY) =
> -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/tls", 0x7fff6f258be0) = -1
> ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/x86_64/libz.so.1", O_RDONLY)
> = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/x86_64", 0x7fff6f258be0) = -1
> ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libz.so.1", O_RDONLY) = -1
> ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/lib/amd64", {st_mode=S_IFDIR|0755,
> st_size=4096, ...}) = 0
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls/x86_64",
> 0x7fff6f258be0) = -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls/libz.so.1", O_RDONLY)
> = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/tls", 0x7fff6f258be0) = -1
> ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/x86_64/libz.so.1",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/x86_64", 0x7fff6f258be0) =
> -1 ENOENT (No such file or directory)
> open("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64/libz.so.1", O_RDONLY) = -1
> ENOENT (No such file or directory)
> stat("/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64", 0x7fff6f258be0) = -1
> ENOENT (No such file or directory)
нет файлов, которые похоже проге нужны.
Вроде бы основные пакеты оупджавы в системе есть:
> $ aptitude search openjdk
> p openjdk-6-dbg
> - Java runtime based on OpenJDK (debugging symbols)
>
> p openjdk-6-demo
> - Java runtime based on OpenJDK (demos and examples)
>
> p openjdk-6-doc
> - OpenJDK Development Kit (JDK) documentation
>
> p openjdk-6-jdk
> - комплект разработчика OpenJDK
>
> i A openjdk-6-jre
> - OpenJDK Java runtime, using Hotspot JIT
>
> i A openjdk-6-jre-headless
> - OpenJDK Java runtime, using Hotspot JIT (headless)
>
> i A openjdk-6-jre-lib
> - OpenJDK Java runtime (architecture independent libraries)
>
> v openjdk-6-jre-shark
> -
>
> p openjdk-6-jre-zero
> - Alternative JVM for OpenJDK, using Zero/Shark
>
> p openjdk-6-source ,
не знаю какого рожна ему не хватает, не документации же или сырцов
оупнджавы?!
В dicom3tools входят следующие утилиты:
> /usr/bin/andump
> /usr/bin/dcentvfy
> /usr/bin/dcsrdump
> /usr/bin/dcsort
> /usr/bin/dctable
> /usr/bin/dcdirdmp
> /usr/bin/dcdump
> /usr/bin/dcfile
> /usr/bin/dchist
> /usr/bin/dckey
> /usr/bin/dciodvfy
> /usr/bin/dcstats
> /usr/bin/jpegdump
но ни одной из них я не смог посмотреть картинки. В лучшем случае
получал какую-то метаинформацию о файле.
Как пользоваться python-dicom вообще не понял, видимо он нужен для
написания питон-скриптов для чтения этих файлов, в чем я не силен.
Утилита dicomhead из пакета dicomnifti выдает какую-то фигню:
> $ dicomhead DICOMDIR
>
> **** DICOMImage::Mosaic: Cannot get value of image type in image
> DICOMDIR
> $ dicomhead A/B/A00
>
> **** DICOMImage::NumSlices: Cannot get number of slices from A/B/A00
> **** Setting value to 1 (can be changed with '-s' option on command
> line.)
>
>
> **** DICOMImage::GetRepetitonTime: Cannot get value of acquisition
> repetition time in image A/B/A00
При употреблении указанной опции -s ругается, что не может открыть файл
-s, воспринимая ее не как опцию, а как файл (в man нет вообще опций
никаких).
Что за NIfTI format и как его читать, если в него конвертнуть, я честно
не совсем понимаю.
Пытался wine'ом открыть CDVIEWER.EXE - ругается, что нужна java 1.5 или
выше, видимо пойду в виртмашину открывать в винде, хотя эта идея мне
особо не нравиться...
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]