Методы, основанные на дистанционных картах, могут быть иерархичными, варьируя число кандидатов-вокселей на шаге обрезки. Для того, чтобы получить скелет строгой иерархии (т. е. скелет одного уровня, входит полностью в скелет более высокого уровня), на шаге связывания необходимо принимать во внимание скелет предыдущего уровня.
Общеполевые методы также могут выделять иерархичные средние линии, варьируя количество исходных точек («семян»), используемых для построения отдельных сегментов средних линий.
Эффективность
Алгоритм топологического утоньшения – практически линейный процесс относительно числа вокселей объекта. Большинство вокселей входного объекта удаляются, когда они обрабатываются впервые (в качестве «простых» точек); «непростые» точки обрабатываются повторно. Сложность анализа таких алгоритмов затруднено, так как конечный результат зависит от входных данных.
Дистанционная карта может быть построена также за линейное время. Последующие шаги обрезки и стыковки могут иметь большую сложность, однако, они оперируют гораздо меньшим множеством вокселей.
Вычислительная сложность построения диаграмм Вороного для множества из n точек в худшем случае
, хотя на практике она почти линейна [4]. Как и в случае с дистанционными картами, здесь необходима постобработка.Сложность вычисления потенциального поля
[15], где n – общее число вокселей. Для больших объектов или объектов с высоким разрешением этот метод работает очень долго.Краткие выводы
В таблице 1 для каждого класса алгоритмов представлены достигаемые или недостигаемые свойства. «Да» означает то, что класс алгоритма гарантирует сохранение того или иного свойства, «Нет» в противном случае. Пустые места оставлены, если свойство сохраняется только некоторыми алгоритмами в классе или в случае, когда свойство слишком сложно для анализа подхода определенного класса (как было показано выше)
Таблица 1 – Свойства, достижимые различными классами алгоритмов.
Свойство | Утоньшение | Дистан-ционные карты | Диаграммы Вороного | Обще-полевые методы |
Гомотопность | Да | Да | Нет | |
Инвариантность | Да | Да | ||
Восстанавли-ваемость | Нет | Нет | Нет | |
Тонкость | Да | |||
Определение сочленений | Да | Да | ||
Связность | Да | |||
Надежность | Нет | Нет | Нет | Да |
Гладкость | Да | |||
Иерархичность | Нет | Да | ||
Эффективность | Да | Да | Да | Нет |
Глава 3 Практическая реализация
В ходе выполнения работ была предложена оригинальная концепция реализации как функций анализа данных компьютерной томографии так и функций взаимодействия с пользователем (медицинским специалистом). Таким образом, разрабатываемый программный комплекс представляет собой симбиоз технологий и программных решений, позволивших изящно обойти возникшие проблемы. Одной из таких проблем является риск неэффективности или малой востребованности разработанного функционала по обработке и анализу изображений в реальных клинических условиях. С этой проблемой связана другая задача: как сделать универсальный интерфейс, понятный для неспециалиста в области программной инженерии.
В настоящее время существует ряд популярных среди программистов комплексов с открытыми исходными кодами, и доступными динамически подключаемыми библиотеками, позволяющими унифицированно решить вопрос о реализации базовых (и не только) функций работы с сериями изображений компьютерной томографии. Однако, в силу быстрого развития медицинской техники, такой подход порождает еще одну проблему – проблему совместимости, корректной организации оперативной памяти и быстрой реализации функций чтения новых форматов, содержащих с точки зрения универсальных библиотек избыточную «незнакомую» информацию. В этом разделе приведены результаты исследований и программного решения описанных проблем.
Организация программной части должна быть ориентирована на задачи, решаемые автоматизированным комплексом микроскопических исследований, а именно:
- улучшение и обработка статических и динамических изображений,
- анализ изображений и выделение информативных областей на них,
- получение значений перечня наиболее важных параметров в соответствии с протоколом исследования,
- сохранение текстовой и графической информации, полученной в ходе проведённого исследования.
В соответствии с поставленными задачами, в программном пакете должны присутствовать следующие блоки, объединённые внутренней логической связью:
- блок ввода и предварительной обработки изображений,
- блок анализа полученного изображения, сегментации и идентификации информативных областей на нём.
- блок расчёта значений параметров и характеристик, выбранных из списка в соответствии с протоколом конкретного исследования
Первый блок, отрабатывает технические задачи по получению компьютерного варианта исследуемого изображения необходимого уровня качества. Определяющим же в этом списке является третий блок. Именно в нём должны быть указаны параметры, по которым будут строиться алгоритмы работы второго и четвёртого блоков. Именно поэтому, выработку требований к программному продукту следует начать с третьего блока, а точнее с рассмотрения вариантов математического описания признаков и характеристик наноскопических объектов, определённых в соответствии с протоколами исследования.
Для построения структурной схемы взаимодействия базового программного обеспечения проведена оценка функциональности и совместимости существующих средств и данных программной разработки, задач, решаемых разрабатываемым программным обеспечением, исходные данные, признаки и характеристики исследуемой поверхности материала при наноскопическом увеличении.
Логические связи и функциональные узлы программного блока приведены на рисунке 7.
В основе работы программного блока анализа изображений лежит функционирование четырех библиотек:
1) для работы с изображением, обеспечивающее доступ к изображению и его элементам, возможность контроля и изменения его характеристик,
2) для предобработки изображения, включая функции улучшения, фильтрации, контрастирования и т.д.
3) для работы математической морфологии выделения и коррекции объектов, включающая аппарат для коррекции формы объектов,
4) для вычисления характеристик, состоящая из набора параметров, и функции анализа и обслуживания сервисов вычисления характеристик по параметрам.
На рисунке 7 представлена общая схема взаимодействия базового программного обеспечения.
Рисунок 7 – Структурная схема взаимодействия базового программного обеспечения
В качестве основного модуля обеспечивающего взаимодействие элементов комплекса должен быть разработан интерпретатор внутреннего языка программирования. Данный модуль включает графический интерфейс, глобальные переменные, структуру изображения. Построение графического интерфейса осуществляется посредством подключения библиотек. Разработка новых элементов интерфейса комплекса может осуществляться как за счет текстового программирования в интерпретаторе, так и с помощью графических инструментальных средств.
Структуру изображения определяет модуль графического интерфейса, который отвечает за визуализацию изображений. Заголовки структур изображения являются переменными интерпретатора. Модуль графического интерфейса также включает функции чтения и записи изображений, простые функции обработки и функции интерактивного построения контура. Все интерактивные функции возвращают значения в блок событий, который изменяет глобальные переменные интерпретатора. Этот модуль обеспечивает взаимодействие пользователя с комплексом. Он позволяет обрабатывать и анализировать несколько изображений. Добавление новых функций обработки и анализа осуществляется через группу функций разработчиков. Новые функции на входе могут получать любые глобальные переменные, хранящиеся в интерпретаторе, а также текстовые и числовые константы. Внутреннее управление комплексом осуществляется через скриптовые функции, которые делятся на две категории:
- обеспечивающие организацию графического интерфейса,
- отвечающие за оперативную функциональность и настройку комплекса.
Все скрипты хранятся в текстовом виде и легко доступны. Однако они не предназначаются для редактирования пользователем и могут быть отредактированы разработчиками для оперативного изменения функциональности комплекса или его настройки непосредственно на рабочем месте.
В основу программной оболочки и функций визуализации заложены библиотеки интерпретатора, визуализации и графического интерфейса программы, в котором определены способы разработки программных модулей и их взаимодействия. Комплекс использует базовый набор программных средств, обеспечивающий взаимодействие и работу программных модулей. Вызов окна графического модуля осуществляется посредством команды интерпретатора. Допустим одновременный вызов нескольких окон. Для осуществления взаимодействия модуля графического интерфейса с интерпретатором, модуль преобразован в DLL-библиотеку.