Эта статья будет первой статьей в серии Ruby on Medicine (RoM), посвященной тому, как Ruby может применяться в медицинской сфере.
В этом руководстве я покажу вам, как преобразовать файл DICOM в изображение JPG, что позволяет нам выполнять различные операции над этим изображением, что мы увидим в следующих статьях этой серии.
Операционная система, которую я использую для этого урока — Ubuntu 14.10 . Если вы используете другую ОС, не беспокойтесь. Я отсылаю вас к ссылкам, которые могут быть полезны для использования в соответствующих разделах ниже.
Что такое DICOM?
Многие из вас, вероятно, не слишком знакомы с медицинскими терминами. Это совершенно нормально. Просто чтобы помочь вам справиться с этой проблемой, позвольте мне начать с представления DICOM, формата файла, который использовался в качестве отправной точки для этой статьи.
Мне очень понравился этот пост Рони, где он представляет DICOM (Цифровая обработка изображений и связь в медицине). Я буду использовать пост Рони, чтобы кратко описать DICOM здесь.
Конечно, вы слышали о таких терминах, как рентген, ультразвук, КТ и МРТ. Такие медицинские изображения поддерживают DICOM и широко его используют. Ядром спецификации файла DICOM является как формат файла, так и сетевой протокол .
Все медицинские изображения сохраняются в таком формате DICOM ( т.е. dcm). Этот формат включает в себя не только изображения, но и информацию о пациенте (например, имя, пол, дату рождения), данные об оборудовании (значение, используемое устройство) и другую информацию.
Сетевой протокол DICOM используется медицинскими приложениями, подключенными к больничной сети, для обмена информацией. Он также используется для поиска и восстановления исследований в архиве.
Конечно, DICOM — это гораздо больше, но это выходит за рамки этой статьи.
Зачем конвертировать DICOM в JPG?
Зачем конвертировать изображение DICOM в формат изображения, такой как JPG? Это несколько потенциальных причин, некоторые из которых:
-
Файлы DICOM известны своими большими размерами. Поскольку мы стремимся работать только с частью изображения в файле, преобразование в JPG даст изображение и уменьшит размер файла. Очевидно, что это значительно облегчает обмен в Интернете.
-
Как упоминалось ранее, файлы DICOM содержат важные данные о пациентах. Таким образом, при передаче таких файлов в Интернете эта конфиденциальная информация раскрывается. Это может быть нарушением неприкосновенности частной жизни пациента. Когда мы конвертируем файл DICOM в изображение, мы делаем изображение анонимным, так как информации о пациенте больше нет.
-
Одна из целей этой серии заключается в выполнении различных задач обработки изображений и компьютерного зрения на медицинских изображениях, таких как, например, обнаружение опухоли. В этих случаях часть изображения файла DICOM служит цели. Почти все может читать или манипулировать JPG.
Настроить
Давайте начнем с того, что в среде есть все необходимое.
Рубин
Если у вас не установлен Ruby, выполните следующую команду в терминале, чтобы установить Ruby:
sudo-apt get install ruby-full
Следующая команда отобразит версию установленной версии Ruby:
ruby -v
Это должно выглядеть примерно так:
ruby 2.1.2p95 (2014-05-08) [x86_64-linux-gnu]
Если вы не используете Ubuntu, установите Ruby для вашей ОС по ссылке ниже:
- Windows : RubyInstaller
- Mac OS X : как установить Ruby на Mac
Рубиновый DICOM
Ruby DICOM — это библиотека, которую мы будем использовать для преобразования DICOM в JPG.
Со страницы Ruby DICOM на GitHub:
Ruby DICOM — это небольшая и простая библиотека для обработки DICOM в Ruby. DICOM (Цифровая визуализация и связь в медицине) — это стандарт для обработки, хранения, печати и передачи информации в медицинской визуализации. Он включает в себя определение формата файла и сетевой протокол связи. Ruby DICOM поддерживает чтение, редактирование и запись в этот формат файла. Он также имеет базовую поддержку для некоторых методов сетевой коммуникации, таких как запросы, перемещение, отправка и получение файлов.
Чтобы установить Ruby DICOM, выполните в терминале следующую команду:
- Ubuntu :
sudo gem install dicom
- Windows :
gem install dicom
- Mac OS X :
gem install dicom
RMagick
Просмотр преобразованного изображения с помощью Ruby означает, что пришло время установить RMagick .
Но что такое RMagick? Основано на руководстве пользователя RMagick:
RMagick — это привязка Ruby к библиотеке ImageMagick TM для работы с изображениями. ImageMagick TM — это бесплатный программный пакет для создания, редактирования и создания растровых изображений. Он может читать, конвертировать и писать изображения в самых разных форматах. Изображения могут быть обрезаны, цвета могут быть изменены, различные эффекты могут быть применены, изображения могут вращаться и комбинироваться, а текст, линии, многоугольники, эллипсы и кривые Безье могут добавляться к изображениям, растягиваться и вращаться.
RMagick — это полный интерфейс к ImageMagick. Версия 1.0.0 была выпущена в феврале 2003 года. В рамках четырех основных классов и 18 вспомогательных классов RMagick определяет более 650 методов и 350 констант. RMagick использует идиомы Ruby, такие как блоки и итераторы, классы Struct, символы, методы с добавлением? — и! И исключения.
Чтобы установить RMagick, выполните следующие команды в своем терминале:
Ubuntu:
sudo apt-get install imagemagick
sudo apt-get install libmagickwand-dev
sudo gem install rmagick
Ссылки на другие ОС:
- Windows : установка RMagick в Windows
- Mac OS X : установка RMagick в Mac OS X
Просмотр DICOM
Когда среда готова к работе, нам нужен файл DICOM, чтобы вызвать наш собственный. Я использовал отсюда набор данных DIASTOLIX (псевдоним) и, в частности, файл: IM-0004-0043.dcm
При просмотре этого файла DICOM с помощью средства просмотра DICOM, такого как RadiAnt , мы видим что-то вроде следующего:
Следующий скрипт преобразует файл DICOM в изображение JPG:
require 'dicom'
include DICOM
dcm = DObject.read("IM-0004-0044.dcm")
dcm_image = dcm.image
dcm_image.normalize.write("IM-0004-0044.jpg")
exit
Запустите этот файл, используя синтаксис:
ruby file_name.rb
Который будет выводить что-то вроде:
I, [2014-12-24T16:55:59.974029 #4056] INFO -- DICOM: DICOM file successfully read: IM-0004-0044.dcm
И новый файл JPG должен быть создан. Показать созданное изображение JPG с помощью RMagick приходит в игру.
require 'RMagick'
include Magick
img = ImageList.new("IM-0004-0044.jpg")
img.display
Собрав все это вместе, следующий скрипт преобразует DICOM в JPG и отображает полученное изображение:
require 'RMagick'
require 'dicom'
include Magick
include DICOM
dcm = DObject.read("IM-0004-0044.dcm")
dcm_image = dcm.image
dcm_image.normalize.write("IM-0004-0044.jpg")
img = ImageList.new("IM-0004-0044.jpg")
img.display
exit
Когда вы запустите программу, вы увидите следующий вывод:
Теперь у вас есть изображение JPG, которое можно легко использовать для различных операций обработки изображений. Я покажу вам некоторые из этих операций в следующих статьях.
Прежде чем закончить этот урок, я хочу упомянуть, что вы можете конвертировать файл DICOM в любой тип изображения, который вам нравится ( например, PNG, BMP). Просто замените часть .jpg
Есть ли какие-то конкретные темы, которые вы хотели бы видеть в этой серии? Если это так, оставьте их в комментариях ниже.