Статьи

Рубин на медицине: преобразование DICOM в JPG

первая помощь длинная тень значок

Эта статья будет первой статьей в серии 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 для вашей ОС по ссылке ниже:

Рубиновый 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

Ссылки на другие ОС:

Просмотр DICOM

Когда среда готова к работе, нам нужен файл DICOM, чтобы вызвать наш собственный. Я использовал отсюда набор данных DIASTOLIX (псевдоним) и, в частности, файл: IM-0004-0043.dcm

При просмотре этого файла DICOM с помощью средства просмотра DICOM, такого как RadiAnt , мы видим что-то вроде следующего:

imageDicomViewer

Следующий скрипт преобразует файл 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

Есть ли какие-то конкретные темы, которые вы хотели бы видеть в этой серии? Если это так, оставьте их в комментариях ниже.