«Применение ит в обработке медицинских изображений»
Вид материала | Реферат |
СодержаниеГлава 3 Практическая реализация 3.2 Взаимодействие с клинической АСУ 3.3 Методика решения прикладных задач и демонстрация использования |
- Белорусский государственный университет применение информационных технологий при анализе, 187.23kb.
- Нелинейная цифровая фильтрация лазерных изображений при регистрации и обработке, 242.95kb.
- Экспресс-контроль цветовых характеристик мясного сырья и мясопродуктов, основанный, 316.99kb.
- Вопросы патентных отношений при получении разрешений на применение новых медицинских, 32.57kb.
- Уждается применение предварительной обработки для повышения качества декодирования, 27.18kb.
- Алгоритмы восстановления изображений при томографической обработке проекций, 48.43kb.
- Мультимедийный 24'' монитор Benq g2400WD, 292.01kb.
- Рассматривается проблема коррекции изображений документов, снятых цифровой фотокамерой,, 33.11kb.
- Некоторые методы распознавания изображений, 261.7kb.
- Обработка и передача изображений, 149.44kb.
Глава 3 Практическая реализация
3.1 Архитектура и состав системы
В ходе выполнения работ была предложена оригинальная концепция реализации как функций анализа данных компьютерной томографии так и функций взаимодействия с пользователем (медицинским специалистом). Таким образом, разрабатываемый программный комплекс представляет собой симбиоз технологий и программных решений, позволивших изящно обойти возникшие проблемы. Одной из таких проблем является риск неэффективности или малой востребованности разработанного функционала по обработке и анализу изображений в реальных клинических условиях. С этой проблемой связана другая задача: как сделать универсальный интерфейс, понятный для неспециалиста в области программной инженерии.
В настоящее время существует ряд популярных среди программистов комплексов с открытыми исходными кодами, и доступными динамически подключаемыми библиотеками, позволяющими унифицированно решить вопрос о реализации базовых (и не только) функций работы с сериями изображений компьютерной томографии. Однако, в силу быстрого развития медицинской техники, такой подход порождает еще одну проблему – проблему совместимости, корректной организации оперативной памяти и быстрой реализации функций чтения новых форматов, содержащих с точки зрения универсальных библиотек избыточную «незнакомую» информацию. В этом разделе приведены результаты исследований и программного решения описанных проблем.
Организация программной части должна быть ориентирована на задачи, решаемые автоматизированным комплексом микроскопических исследований, а именно:
- улучшение и обработка статических и динамических изображений,
- анализ изображений и выделение информативных областей на них,
- получение значений перечня наиболее важных параметров в соответствии с протоколом исследования,
- сохранение текстовой и графической информации, полученной в ходе проведённого исследования.
В соответствии с поставленными задачами, в программном пакете должны присутствовать следующие блоки, объединённые внутренней логической связью:
- блок ввода и предварительной обработки изображений,
- блок анализа полученного изображения, сегментации и идентификации информативных областей на нём.
- блок расчёта значений параметров и характеристик, выбранных из списка в соответствии с протоколом конкретного исследования
- блок сохранения, оперативного поиска и архивации полученных в ходе исследования текстовых и графических данных.
Первый блок, отрабатывает технические задачи по получению компьютерного варианта исследуемого изображения необходимого уровня качества. Определяющим же в этом списке является третий блок. Именно в нём должны быть указаны параметры, по которым будут строиться алгоритмы работы второго и четвёртого блоков. Именно поэтому, выработку требований к программному продукту следует начать с третьего блока, а точнее с рассмотрения вариантов математического описания признаков и характеристик наноскопических объектов, определённых в соответствии с протоколами исследования.
Для построения структурной схемы взаимодействия базового программного обеспечения проведена оценка функциональности и совместимости существующих средств и данных программной разработки, задач, решаемых разрабатываемым программным обеспечением, исходные данные, признаки и характеристики исследуемой поверхности материала при наноскопическом увеличении.
Логические связи и функциональные узлы программного блока приведены на рисунке 7.
В основе работы программного блока анализа изображений лежит функционирование четырех библиотек:
1) для работы с изображением, обеспечивающее доступ к изображению и его элементам, возможность контроля и изменения его характеристик,
2) для предобработки изображения, включая функции улучшения, фильтрации, контрастирования и т.д.
3) для работы математической морфологии выделения и коррекции объектов, включающая аппарат для коррекции формы объектов,
4) для вычисления характеристик, состоящая из набора параметров, и функции анализа и обслуживания сервисов вычисления характеристик по параметрам.
На рисунке 7 представлена общая схема взаимодействия базового программного обеспечения.
Рисунок 7 – Структурная схема взаимодействия базового программного обеспечения
В качестве основного модуля обеспечивающего взаимодействие элементов комплекса должен быть разработан интерпретатор внутреннего языка программирования. Данный модуль включает графический интерфейс, глобальные переменные, структуру изображения. Построение графического интерфейса осуществляется посредством подключения библиотек. Разработка новых элементов интерфейса комплекса может осуществляться как за счет текстового программирования в интерпретаторе, так и с помощью графических инструментальных средств.
Структуру изображения определяет модуль графического интерфейса, который отвечает за визуализацию изображений. Заголовки структур изображения являются переменными интерпретатора. Модуль графического интерфейса также включает функции чтения и записи изображений, простые функции обработки и функции интерактивного построения контура. Все интерактивные функции возвращают значения в блок событий, который изменяет глобальные переменные интерпретатора. Этот модуль обеспечивает взаимодействие пользователя с комплексом. Он позволяет обрабатывать и анализировать несколько изображений. Добавление новых функций обработки и анализа осуществляется через группу функций разработчиков. Новые функции на входе могут получать любые глобальные переменные, хранящиеся в интерпретаторе, а также текстовые и числовые константы. Внутреннее управление комплексом осуществляется через скриптовые функции, которые делятся на две категории:
- обеспечивающие организацию графического интерфейса,
- отвечающие за оперативную функциональность и настройку комплекса.
Все скрипты хранятся в текстовом виде и легко доступны. Однако они не предназначаются для редактирования пользователем и могут быть отредактированы разработчиками для оперативного изменения функциональности комплекса или его настройки непосредственно на рабочем месте.
В основу программной оболочки и функций визуализации заложены библиотеки интерпретатора, визуализации и графического интерфейса программы, в котором определены способы разработки программных модулей и их взаимодействия. Комплекс использует базовый набор программных средств, обеспечивающий взаимодействие и работу программных модулей. Вызов окна графического модуля осуществляется посредством команды интерпретатора. Допустим одновременный вызов нескольких окон. Для осуществления взаимодействия модуля графического интерфейса с интерпретатором, модуль преобразован в DLL-библиотеку.
3.2 Взаимодействие с клинической АСУ
Как упоминалось выше, чтобы избежать проблемы свзязанные с совместимостью функционала чтения форматов хранения КТ-данных, в рамках работ по настоящему договору были разработаны и реализованы функции (табл.2 функций приведен ниже), позволяющие манипулировать DICOM-сериями, полученными с современных томографов и содержащих большой объем информации, также инициализирующие интеллектуальную обработку (выделение контуров).
Таблица 2 – Функции для работы с сериями КТ-данных
Вызываемая функция | Действие |
int GetDCMPatienListCount () | Получить количество доступных серий. |
char ** GetDCMPatienList () | Получить список серий пациента. |
char** GetDCMFilesList (int seriesNumber) | Получить список всех файлов срезов из серии |
char * GetDCMData (int seriesNumber) | Получить имя созданного файла с данными по всем слоям сканирования данной серии. |
int GetDCMFileByteShift (int seriesNumber , int dcmFileNumber) | Получить сдвиг от начала данных по всем слоям сканирования (GetDCMData) для dcmFileNumber-го файла seriesNumber-й серии. |
int GetDCMDataWidth (int seriesNumber , int dcmFileNumber) | Получить ширину среза в пикселях. |
int GetDCMDataHeight (int seriesNumber , int dcmFileNumber) | Получить высоту среза в пикселях. |
double[3] GetDCMDataPosition (int seriesNumber , int dcmFileNumber) | Получить 3D положение среза. |
double[3] GetDCMDataResolution (int seriesNumber , int dcmFileNumber) | Получить 3D размер вокселя. |
double[6] GetDCMDataOrientation (int seriesNumber , int dcmFileNumber) | Получить 3D ориентацию. |
int GetDCMDataContoursCount (int seriesNumber , int dcmFileNumber) | Получить количество контуров у среза |
int GetDCMDataContourPointsCount (int seriesNumber , int dcmFileNumber, int contourNumber) | Получить кол-во точек в контуре под номером contourNumber; |
point* GetDCMDataContourPoints (int seriesNumber , int dcmFileNumber, int contourNumber) | Получить точки контурп под номером contourNumber. |
3.3 Методика решения прикладных задач и демонстрация использования
Для того, чтобы загрузить изображения формата DICOM следует выбрать пункт меню File-Open DICOM или нажать комбинацию клавиш Ctrl+N (Рис. 9).
Рисунок 9 – Пункт меню открытия серии медицинских изображений.
После вызова пункта меню откроется диалог выбора файла. Следует указать любой файл серии слоев, которую необходимо загрузить (Рис. 10).
Рисунок 10 – Диалог выбора файлов.
После выбора файла программа загрузит всю серию изображений и отобразит три проекции (аксиальную, корональную и сагиттальную) (Рис. 11).
Рисунок 11 – Общий вид программы.
Для выделения средних линий необходимо выбрать пункт меню Window-Extract skeleton (Рис. 12).
Рисунок 12 – Пункт меню выделения средних линий
Результат выделения средних линий представлен на рисунке 13. Получившееся изображение можно вращать в различных направления, выбирать различное приближение.
а) б)
в)
Рисунок 13 – Пример построения скелета а) и б) различные ракурсы в) приближение