Конвертация dicom-файла в jpg из командной строки.
В данном посте опишем, как мы получали jpg-картинки из dcm-файлов с изображениями, используя утилиту
командной строки Linux. "Погуглив", можно быстро обнаружить, что эту задачу решает утилита из пакета dcmtk и
называется она dcmj2pnm.
Если у вас Debian или Debian-подобный дистрибутив, ставьте пакет dcmtk и приступайте к экспериментам.
В этом пакете вы найдете много чего полезного для работы с dicom-файлами. Пакету dcmtk мы, как нибудь, посветим отдельную статью. А пока, опишем ситуацию, с которой пришлось столкнуться в ходе нашей работы.
Итак, apt, в нашем случае, отказался ставить пакет dcmtk. Обнаружился конфликт в имени файла, который (файл) уже существовал в другом пакете, а именно в dcm4che-2-1.0.27-SNAPSHOT-16849.deb ( Java DICOM Tools), который мы используем для работы в сервером DCM4CHEE из коммандной строки. Можно было пересобрать один из пакетов, внеся соответствующие исправления или "подавить" конфликт как-то иначе, но было решено "обойти" проблему.
Было решено поставить dcmtk из tar-архива.
Скачиваем статически скомпилированные утилиты с сайта http://dicom.offis.de/dcmtk.php.en Они в архиве dcmtk-3.6.0-linux-i686-static.tar. Далее раскрываем архив в /opt, например, и копируем нужные утилитки (они в каталоге bin) в /usr/local/bin, чтобы запускались "отовсюду". Выглядит "не очень", но работать будет.
И еще один шаг. Утилита dcmj2pnm потребовала переменную окружения DCMDICTPATH, поэтому добавляем
DCMDICTPATH=/opt/dcmtk-3.6.0-linux-i686-static/share/dcmtk/dicom.dic
export DCMDICTPATH
в ваш .profile, перезагружаемся в bash и проверям env | grep DCMDICTPATH
Теперь пробуем изготовить jpg-файл из dcm-файла с изображением.
dcmj2pnm -d -v -im +oj +Jq 90 +Wi 1 file1.dcm file1.jpg
I: reading DICOM file: file1.dcm
I: preparing pixel data
I: dumping image parameters
I: filename : file1.dcm
I: transfer syntax : Little Endian Implicit
I: SOP class : ComputedRadiographyImageStorage
I: SOP instance UID : 1.3.51.0.7.1419064253.9623.41551.46252.25000.41420.38712
I: columns x rows : 3408 x 4200
I: bits per sample : 8
I: color model : MONOCHROME2
I: pixel aspect ratio : 1.00
I: number of frames : 1
I: VOI LUT function : <default>
I: VOI windows in file : 1
I: - <no explanation>
I: VOI LUTs in file : 0
I: presentation shape : IDENTITY
I: overlays in file : 0
I: maximum pixel value : 255
I: minimum pixel value : 0
I: activating VOI window 1
I: writing frame 1 to file1.jpg
С флагами утилиты, думаю, разберетесь. Мы эту комбинацию подсмотрели в форумах :) Удачи...