Передача информации из ультразвуковой медицинской диагностической установки ALOCA SSD650

Complex Diagnostic Systems Ltd ООО «Комплексные

диагностические системы»

Независимая сервисно - диагностическая консоль (НСДК) для компьютерных томографов, ультразвуковых установок и рентгеновских аппаратов CTsoft

Справочник пользователя

Аннотация.

Данный документ состоит из введения и трех глав. Во введении даются начальные сведения о системе; в главе 1 описывается работа с изображениями: обработка, печать, архивирование, работа с текстом, создание трехмерных объектов; в главе 2 - работа с трехмерными объектами; в главе 3 - работа с базой данных. Изучать документ рекомендуется параллельно с работой на компьютере. Предполагается знание пользователем основ работы с персональным компьютером в операционной среде MS-DOS, навык работы с Нортон-командером.

Введение.

Пользовательский интерфейс системы аналогичен интерфейсу операционной системы Windows, т.е. основан на работе с окнами. Окно - это область экрана, ограниченная рамкой. Полоса вверху рамки содержит название окна или имя загруженного в него объекта. Если окно активно - эта полоса выделена цветом. В верхнем левом углу окна находится кнопка, нажав которую вы уничтожаете окно, в верхнем правом углу - кнопка изменения размера окна, если это изменение не заблокировано. Для того чтобы сделать окно активным, достаточно навести курсор мыши на это окно, и щелкнуть левой кнопкой. Вверху экрана над всеми окнами выводится меню активного в данный момент окна, оно реализует функции активного окна. В меню всех окон - левый элемент CT- это главное меню. С помощью главного меню системы обеспечивается оперативный вызов конфигурации окон, необходимой для выполнения требуемого типа работ в системе и вызов окон различных типов независимо от текущей конфигурации. Кроме того, главное меню поддерживает процедуры для загрузки данных объемного представления, их уничтожения и вызов окна установки параметров системы. При активизации главного меню выводится вертикальное подменю с элементами:

2D Изображения

{2}

вызов конфигурации окон для работы с 2D изображениями, печати, архивирования, управления вводом и преобразованием изображений и работы с текстовой документацией

3D Объем

{3}

вызов конфигурации окон для работы с 3D изображениями и планирования вмешательства

Параметры

{U}

окно установки параметров системы

Окна

{W}

переход к подменю вызова отдельных окон и независимой загрузки и генерации 3D данных

2dslice

{Alt/I}

вызов окна Изображения

3dview

{Alt/3}

вызов окна 3dview

3dpreview

{Alt/P}

вызов окна 3dpreview

Animator

{Alt/A}

вызов окна Animator

3d measure

{Alt/M}

вызов окна 3d measure

Load volume

{Alt/V}

загрузить объемное представление томограмм

Generate cube

генерировать объемное представление полутонового куба

Generate ball

генерировать объемное представление полутоновой сферы

Close volume

закрыть и удалить из памяти рабочее объемное представление

Text

перейти к окну редактирования текста

Exit

{X}

выход из системы CT_Imager

Как войти в систему.

После инсталляции системы, проводимой разработчиками, она находится в рабочем директории c:\ctsys\exe. Надо войти в него и выполнить команду ct_work.bat. На экране дисплея появится нечто, похожее на нижеприведенную иллюстрацию:

Это конфигурация для работы с изображениями. На рисунке видны два главных окна системы: окно Управление (справа) и окно Изображения, с изображением среза, полученного на рентгеновском томографе.

Как выйти из системы.

Первый вариант: надо активизировать в верхнем меню элемент CT, появится вертикальное подменю, и щелкнуть мышью на элементе Выход.

Второй вариант: в латинском нижнем режиме клавиатуры (для активизации латинского регистра надо одновременно нажать клавиши Control-Shift, для активизации русского регистра - клавиши Alt-Shift - зеленая рамка по периметру экрана - признак русского регистра) нажмите клавишу x. После выполненных действий в любом варианте появится окно подтверждения выхода. Если вы не передумали выйти из системы щелкните мышью на кнопке Да окна подтверждения или при работе с клавиатуры: переведите курсор на кнопку Да и нажмите клавишу Enter.

ГЛАВА 1. Работа с изображениями.

Какие окна выведены на экран после входа в систему.

Это окна конфигурации для работы с изображениями. Они перечислены ниже. Первые три окна присутствуют всегда.. Четвертое окно FG-сервис выводится, если в вашей системе есть оборудование для ввода видеосигнала

Окно Управление

является основным окном при работе с 2D изображениями и позволяет управлять вводом изображений с томографа, преобразованием данных во внутренний формат и вызывает приложения, работающие вне оболочки, такие как работа с стримером, с факс-модемом, монитором, базой данных, Нортон-командером и архивом; управляет печатью изображений и диагностических заключений на лазерном принтере и настройкой параметров печати изображения.

Окно Изображения

предназначено для работы с двумерными изображениями различных типов и двумерными сечениями трехмерных объектов. В этом окне выполняются основные виды работ по визуализации, анализу и обработке двумерных изображений и подготовка 3D представлений по серии последовательных двумерных сечений.

Окно Текст

предназначено для работы с текстовой информацией параллельно с анализом изображений и подготовки диагностических заключений.

Окно FG Сервис

обеспечивает управление работой с видеосигналом, включая просмотр изображения в динамике, оцифровку текущего кадра, ввод титула пациента, тестирование и настройку платы ввода изображений с видеосигнала.

Окно Управление

Окно Управление является управляющим окном 2D режима и позволяет реализовывать основные функции работы с изображением: выбор, печать, копирование, удаление и т.д., управлять настройкой системы и запускать внешние приложения. В окне отображаются функциональные кнопки, таблица выбора-выделения изображений, подокна отображения. В верхней части окна находится подокно с путем директория, в котором выбираются изображения, под ним - таблица с тремя списками: в левом - поддиректории, в среднем - номера объектов, в правом - номера срезов. Вначале в таблице находятся списки соответствующие стандартному пути нахождения изображений: c:\ctsys\images (параметр image в файле ct.cfg). В верхней строке списка директориев находится строка «..» и далее список поддиректориев, если он есть. Для смены директория щелкните мышью на имени поддиректория в списке, либо на строке «..» (выход в старший директорий). В каждом списке имеется курсор (серый или черный), цвет активного курсора - черный. Курсор, указывающий на изображение, перемещается стрелками вверх и вниз на одну позицию; на лист - клавишами PgUp, PgDn; в начало и конец списка - клавишами Home, End. Кроме того, справа от каждой таблицы находится линейка для перемещения курсора. Ею пользуются в случае, если список изображений не умещается в таблице. Вверху и внизу линейки находятся кнопки стрелка вверх и стрелка вниз - при нажатии на них мышью курсор перемещается на одну позицию. На линейке находится движок; если навести на него курсор мыши, нажать левую кнопку мыши и, не отпуская ее, переместить мышь вверх или вниз, то движок переместится на новое место линейки и после отпускания кнопки мыши произойдет перевывод другого фрагмента списка. Другой способ перевывода фрагмента списка - щелкнуть мышью сверху или снизу от движка.

Как, не выходя из системы, получить текст помощи.

Для получения подсказки о работе с каким-нибудь элементом панели наведите курсор мыши на этот элемент (но не щелкайте!) и нажмите на клавиатуре компьютера F1 - выведется окно с текстом подсказки. Для получения подсказки работы с архивом наведите курсор мыши на элемент меню Архив (но не щелкайте!) и нажмите на клавиатуре F1; если текст превышает размеры экрана его можно листать, щелкая мышью над кнопками выведенными внизу текста (ДАЛЬШЕ, НАЗАД); для выхода из режима подсказки нажмите на клавиатуре Esc.

Как выбрать нужное изображение.

Для загрузки изображения щелкните мышью на номере нужного пациента или на номере нужного среза в таблице выбора панели Управление - активный курсор перейдет на этот номер. Далее нажмите кнопку Откр.IM или повторно щелкните мышью (изображение выведется в окно Изображение).

Для загрузки объекта - выберите объект и нажмите кнопку Откр.NO. В окно Изображение выведутся все изображения данного объекта.

Для выбора изображения по фамилии надо воспользоваться кнопкой Поиск. Произойдет вывод окна поиска. Поиск осуществляется по шаблону, вводимому в одноименное поле. Шаблон – это текст с искомыми начальными символами (от 1 до 25 символов). Поиск осуществляется в директории, выведенной в вверху окна, и, если параметр «Включая поддирекории» имеет значение «да», во всех поддиректориях, по точному совпадению с учетом регистров, при нажатии кнопок Искать и Искать дальше. Кнопка Искать дальше используется, когда начальные символы изображения и шаблон совпали, а полного совпадения нет. Если изображение найдено, оно выводится в окно изображения, иначе выводится сообщение «Изображение не найдено». Изменить путь директории поиска можно, воспользовавшись соответствующей кнопкой с помощью стандартного окна выбора. Для поиска можно использовать список изображений данной директории, отсортированный по фамилиям и выведенный вверху окна поиска. Перемещение по этому списку осуществляется мышью, стандартными элементами управления, имеющимися справа от списка - движок и кнопки, а также клавишами «стрелка вверх», «стрелка вниз», PgUp, PgDn клавиатуры. Для загрузки изображения, на котором стоит курсор надо на нем повторно щелкнуть кнопкой мыши или нажать клавишу “Enter”. Выход из функции осуществляется кнопками Отказ и Ок. При выходе по кнопке Ок происходит передача пути директории поиска в окно Управление.

Как перевывести изображение.

Кнопка Перевывод выводит изображение заново, она используется, когда вы произвели какие-либо манипуляции с изображением и хотите убрать с экрана результаты этих манипуляций. При перевыводе восстанавливается также масштаб изображения 1, если он был не равен 1 или 2.

Как изменить «окно вывода» изображения.

Понятие окна появилось в связи с необходимостью отображения диапазона чисел интересующей области на весь диапазон градаций яркости (серого) экрана. Окно вывода изображения характеризуется двумя величинами C и W. C -это центр диапазона, а W - ширина диапазона. Числа, соответствующие точкам изображения (например, в томографии - числа Хаунсфилда), от минимума C-W/2 до максимума C+W/2 отображаются серым пропорционально диапазону градаций яркости, соответственно числа меньшие минимума отображаются черным, а большие максимума - белым. Меняя значения C и W, мы меняем отображение, выделяя одно и нивелируя другое (W) или переводя его в сторону светлых или темных тонов (C).

Менять значения можно кнопками С+, С-, W+, W- панели Управление или одноименными элементами меню окна Изображения, а также (при активном окне Изображения) кнопками клавиатуры (C-стрелки вверх и вниз, W-стрелки вправо и влево). При однократном нажатии происходит увеличение/уменьшение значений на шаг (фиксированное значение). Шаг изменения С и W может быть скорректирован в окне системных установок Setup (элемент меню Параметры элемента СТ верхнего меню).

Как листать изображения.

Функции IM+/IM- обеспечивают переход к следующему/предыдущему изображению в серии файлов данного объекта. Функции NO+/NO- обеспечивают переход к первому изображению следующего/предыдущего объекта. Доступ к этим функциям мышью аналогичен вышеописанному способу. Для клавиатуры существует следующее соответствие: IM+-«=», IM-«-», NO+-«+», NO-«_».

Как выделить изображения.

Режим выделения файлов изображений в таблице включается кнопкой Выделение и используется для последующих: копирования в отдельный директорий, удаления с жесткого диска или для печати на лазерный принтер. В режиме выделения перемещение курсора приводит к немедленному выводу текущего изображения на экран вне зависимости от того, выделен файл или нет. Для выделения надо навести курсор (активный курсор - фон черного цвета) на нужный объект или срез (переключение между столбцами объектов, срезов, поддиректориев можно, помимо мыши, делать клавишей Tab, а внутри столбца курсор передвигается стрелками или движками) и еще раз щелкнуть мышью или нажать клавишу Enter. Выделенные файлы отображаются желтым цветом. При выделении объекта выделяются все его срезы. При щелчке мыши или нажатии клавиши Enter на выделенном объекте или срезе выделение пропадает. Имеются также кнопки Все+ Все- Инверс. Первые две кнопки выделяют или, соответственно, гасят все изображения данного директория. Кнопка Инверс (если курсор находится в столбце срезов) выделяет невыделенные и гасит выделенные срезы (т.е. инвертирует выделение) для данного объекта, а, если курсор находится в столбце объектов, то инвертирует выделение всех изображений.

Как копировать изображения.

Кнопка Копир копирует изображение, выведенное в окно Изображения или все выделенные изображения в директорий \BOX. Эта функция используется, если вы хотите отобрать изображения по какому-либо признаку.

Как удалять изображения.

Кнопка Удаление удаляет изображение, выведенное в окно Изображения или все выделенные изображения с жесткого диска

Как вводить примечания в файл с изображением.

Кнопка Коммент выводит окно ввода формы для ввода двух строк комментария в файл с изображением. После ввода комментария, он отображается вверху окна Изображения.

Как работать с меню окна Управление.

Окно Управление активизирует меню, состоящее из следующих элементов:

NC

вызов Нортон - коммандера

Архив

вызов окна управления работой с архивом изображений

Сеть

вызов внешней программы ввода изображений по локальной сети (например, с подключенного компьютера томографа) и преобразования изображений в формат Ctsoft

БазаДанных

вызов внешней программы для работы с медицинской базой данных

Сервис

вызов:

    программы работы с архивным устройством (стриммером, магнитооптическим накопителем, записывающим CD и т.д.);

    монитора CTMON для редактирования некоторых параметров системы;

    программы работы с модемом

ЗагрКонф

загрузка заранее записанной конфигурации параметров печати из файла

Парам1

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

Парам2

вызов окна для изменения часто меняемых параметров печати

ФАЙЛ/экр

изменение параметра печати: из файла или с экрана

ЗапКонф

запись текущей конфигурации параметров печати в файл

Как печатать на лазерном принтере.

Печать изображений и текста заключения на лазерном принтере осуществляется через окна Изображения и Текст. Поэтому не рекомендуется использовать окна Изображения и Текст, вызванные в других конфигурациях, например в 3D volume, и удалять любое из них до завершения работ по получению твердых копий.

Функция печати на лазерный принтер может быть вызвана только в случае, если в окно Изображения загружено изображение. Печать изображений производится со следующими приоритетами: если есть выделенные изображения, то печатаются только они; если выделения нет, начиная с изображения загруженного в окно Изображения, печатается либо заданное (если задано) количество изображений (параметр К-во изображений), либо все имеющиеся изображения (срезы) данного объекта (пациента) в соответствии со значениями нижеописанных параметров печати, которые могут быть изменены с помощью элементов верхнего меню Парам1 и Парам2.

При активизации элемента меню Парам1 выводится окно ввода формы со следующими параметрами:

Разрешение принтера

300dpi/ 600dpi/ 1200 dpi

Параметр, задающий плотность печати точек/дюйм, для типов принтеров, не имеющих режима 600 dpi должно всегда стоять значение 300 dpi

Матрица пикселя

4*4/ 8*8

Матрица, размером с которую, печатается каждая точка полутонового изображения (значение 8*8 используется для высокого разрешения принтера)

Большие буквы загол.

вкл/вык

Если этот флаг включен, две верхние строки листа (сопроводительная информация) печатаются большими буквами

Отступ слева изображ.

<целое число>

Значение этого параметра - отступ от левого края в миллиметрах для изображений

Отступ слева текста

<целое число>

Значение этого параметра - отступ от левого края в миллиметрах для текста

Промежуток по гориз.

<целое число>

Значение этого параметра - расстояние между изображениями по горизонтали в миллиметрах

Промежуток по вертик.

<целое число>

Значение этого параметра - расстояние между изображениями по вертикали в миллиметрах.

Коррекция C

<число с плавающей точкой>

Значение этого параметра - смещение центра окна изображения (в томографическом смысле) перед печатью. Центр смещается на величину параметра, умноженного на ширину окна W в сторону увеличения. Параметр должен быть меньше 1 (два знака после десятичной точки). Введение этого параметра связано с тем, что "светлота" изображения на экране дисплея не всегда соответствует “светлоте" напечатанного изображения.

При активизации элемента меню Парам2 выводится окно ввода формы со следующими параметрами:

Инверсия

Вык/ Вкл

флаг инверсии изображения перед печатью

Протокол

Вкл/ Вык

флаг печати заключения из окна Текст

Форматирование

НеФормат/ Формат/

БазДФорм

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

Обрезка

Нет/ Прямоуг.

тип выделяемой области (обрезки) при печати текущего изображения, область печатаемого изображения: Нет - все изображение, Прямоуг - прямоугольник

Откуда

Файл/ Экран

определение того, откуда берется печатаемая информация: из файла на диске или непосредственно с экрана; при печати с экрана прямо на изображение накладывается сопроводительная информация

К-во копий

<дес. число>1 - 9

количество печатаемых копий

К-во изображений

0/ <дес. число>

количество выводимых изображений, если параметр выключен (равен 0), он не оказывает влияния на печать; если параметр включен (не равен 0) печать прекращается, если количество выведенных изображений сравняется со значением параметра;

Масштаб (точки)

<дес. число>

масштаб изображения, задаваемый количеством точек в результирующей строке изображения, в которое преобразуется исходная строка изображения, изображение перевыводится на экран и печатается в заданном масштабе

Масштаб (коэфф.)

<число с плавающей точкой>

тот же масштаб изображения; только он задается числом с плавающей точкой, границы изменения: >=0.3, <=4 (при 600 dpi) или <=2 (при 300 dpi)

В нижней части окна Управление находится подокно Печ_N отображающее в процессе печати текущее количество переданных в лазерный принтер изображений.

Если пользователь по каким-то причинам хочет прекратить процесс печати он должен нажать клавишу Esc клавиатуры компьютера. В этом случае программа доведет до конца процесс передачи в лазерный принтер текущего изображения, напечатает то, что получилось, и остановится вне зависимости от значений параметра К-во изображений.

Функциональные кнопки:

ПокзОбр

визуализация границ выделяемой прямоугольной области в соответствии с заранее введенными значениями этих границ

УстОбр

установка границ выделяемой области; кнопка используется, если заранее введенные значения границ не удовлетворяют пользователя; после нажатия кнопки необходимо на изображении мышью задать новые границы обрезки, которые запоминаются и действуют до следующего нажатия этой кнопки

РучЗагр

загрузка текущего изображения в память принтера без печати

Печать

кнопка, запускающая процесс печати серии изображений или печать после загрузки изображений в ручном режиме

ПчТекст

кнопка, запускающая процесс печати только информации находящейся в окне Текст, после входа в режим РучЗагр блокируется до нажатия кнопки Печать

Все параметры печати, а также значения параметров региона печати, запоминаются в текущей конфигурации и могут запоминаться в файлах конфигурации, имеющих расширение CLJ. Таким образом, пользователь имеет возможность создавать типовые конфигурации для печати различных изображений и создания собственных режимов печати.

Элемент меню ЗагрКонф позволяет вызывать из файла конфигурацию параметры печати.

Элемент меню ЗапКонф позволяет запоминать в файле конфигурацию параметров печати.

При печати изображений с томографа ОБРАЗ допускается печать параметров исследования на томографе, если параметр Промежуток по гориз. (расстояние между изображениями по X) больше или равен 18 мм.

Окно Изображения

Как, не выходя из системы, получить текст помощи.

Для получения текста помощи активизируйте окно, наведите курсор мыши на элемент меню (но не нажимайте кнопку мыши!) и нажмите на клавиатуре компьютера F1. Выведется окно с текстом подсказки; если текст превышает размеры экрана его можно листать, щелкая мышью над кнопками выведенными внизу текста (ДАЛЬШЕ, НАЗАД); для выхода из режима подсказки нажмите на клавиатуре Esc.

Как работать с меню окна Изображения.

Окно Изображения активизирует меню, состоящее из следующих элементов:

Файл

работа с базой данных изображений

Изм

измерения и анализ изображений

Манип

обработка изображений

Серв

дополнительные утилиты

C+

{+}

увеличение значения центра окна визуализации

C-

{-}

уменьшение значения центра окна визуализации

W+

{Shift/+}

увеличение значения ширины окна визуализации

W-

{Shift/-}

уменьшение значения ширины окна визуализации

IM+

{Alt/+}

переход к следующему изображению

IM-

{Alt/-}

переход к предыдущему изображению

NO+

переход к первому срезу следующего объекта

NO-

переход к первому срезу предыдущего объекта

Удал

удаление изображения или выделенных изображений

Мфор

вывод изображения на мультиформатную камеру или термопринтер

Печ

печать выделенных при загрузке объекта изображений

PCX

сохранение изображения в формате PCX

Как производить файловые операции.

Файловые операции производятся с помощью элемента меню Файл.

Подменю Файл

Открыть

{Alt/O}

просмотр каталога изображений, выбор и загрузка изображения

Срез

->

переход к подменю получения изображений сечений из объема, элемент активен только при работе с трехмерными объектами

Сохранить

{Alt/S}

запись в файл текущего изображения под тем же именем

Сохранить как

{Alt/A}

запись в файл текущего изображения с другим именем

Сохранить в MРT

{Alt/B}

запись в файл текущего изображения в формате ДИСТОМ (только для исходно дистомовских изображений)

Копировать в BOX

{Alt/L}

запись текущего изображения или выделенных изображений в отдельный директорий

Ввести примечания

{Alt/M}

редактирование или добавление комментария к текущему изображению

Упаковать

{Alt/C}

компрессия текущего изображения

Открыть Выводится окно для ввода имени файла с изображением, выбор осуществляется с помощью мыши или стрелок. Собственно загрузка происходит с помощью элемента "ОК" или двойным нажатием левой кнопки мыши или клавишей Enter. Элемент меню Отказ предназначен для выхода из подменю Открыть без загрузки изображения.

Сохранить как .. Окно для записи в файл текущего изображения такое же, как и при загрузке рабочего файла на экран. Изображение можно записать под именем, уже имеющимся в каталоге, или под новым именем, которое следует ввести с клавиатуры.

Сохранить в МРТ Если загруженное изображение изначально было в формате ДИСТОМ, то оно снова преобразуется в этот формат; файл с этим изображением получает исходное имя и записывается в директорию ctsys\images. Файл в формате CTSOFT не удаляется.

Ввести примечания Обеспечивает ввод комментария в файл текущего изображения. Вызывает окно ввода и редактирования комментария.

Упаковать Вызывает компрессию текущего изображения с параметрами по умолчанию и записывает изображение с именем, начинающимся с символа "P" в директорию сжатых изображений

Подменю элемента Срез

Axial

{A}

импорт текущего аксиального сечения из 3D объема

Coronar

{C}

импорт текущего коронарного сечения из 3D объема

Sagital

{S}

импорт текущего сагиттального сечения из 3D объема

Paraxial

->

импорт текущего параксиального сечения из 3D объема

Trace {P}

выбор параксиального сечения по следу

CurSeg//Z

выбор параксиального сечения по сегменту параллельно оси Z

CurSeg//Y

выбор параксиального сечения по сегменту параллельно оси Y

CurSeg//X

выбор параксиального сечения по сегменту параллельно оси X

Oblique

{O}

импорт наклонного сечения

Setup

установка параметров 3D импорта

Как производить Измерения.

Измерения производятся с помощью элемента меню Изм.

Подменю элемента Изм

Значения в точке

{V}

измерение значений функции в точке

Среднее

{M}

динамический анализ среднего по зоне интереса 10*10

ROI

{R}

анализ по зоне интереса

Значения в области

{A}

выбор зоны и вывод значений плотности

Расстояния в см.

{D}

измерение расстояний/углов

Маркер

{K}

вставка пометок структур изображения с нумерацией для печати

Профиль

{F}

вывод и анализ графика строки/столбца изображения

Объемы

{V}

определение объемов структур по серии изображений

Калькулятор

{I}

калькулятор с возможностью ввода измеренных величин

Объемы очагов

{O}

вычисление суммарных объемов очагов на одном изображении

Функция Значения в точке позволяет измерить значение плотности в любой точке активного окна изображения. В верхней части окна выводятся текущие значения координат курсора в пикселях (Х - координата х, Y - координата y), а также значение плотности в точке с указанными координатами (Н - значение плотности в числах Хаунсфилда для томограмм или значение яркости для рентгеновских и ультразвуковых изображений). Нажатие левой кнопки "мыши" приводит к фиксации текущего измерения на экране (фиксируется до 8-ми точек, одновременно отображается до 4-х значений координат и плотности - значения с 5 по 8 замещают значения с 1 по 4). Нажатие правой кнопки мыши или Esc приводит к выходу из функции.

Функция ROI позволяет проанализировать значение плотности по зоне интереса.

При вызове функции ROI в правый верхний угол экрана выводится окно ROI, а в верхней строке - меню ROI. В окне ROI находятся:

· подокна, отображающие параметры ROI;

· кнопки изменения параметров;

· функциональные кнопки.

Анализ значения плотности по зоне интереса включает в себя вычисление следующих параметров:

РС

число пикселей в зоне

МЕ

среднее значение по зоне

МА

максимальное значение по зоне

MI

минимальное значение по зоне

ST

стандартное отклонение

RM

средне - квадратичное отклонение

AR

площадь зоны

VO

объем зоны - AR умноженное на толщину слоя

Выбор зоны интереса осуществляется в зависимости от типа зоны.

Для прямоугольной зоны левая верхняя граница зоны устанавливается при нажатии левой кнопки мыши. Зона расширяется до нужного уровня и ограничивается нажатием правой кнопки. Если в процессе расширения зоны выясняется, что следует изменить начальную точку зоны, необходимо вновь нажать левую кнопку мыши в нужном месте и повторить вновь процесс задания зоны.

Для круглой зоны сначала выводится окружность, привязанная к маркеру мыши. Ее размер меняется нажатием кнопок «стрелка вверх» и «стрелка вниз». Перемещая мышь и меняя размеры окружности, выбирается зона. Фиксация зоны производится путем нажатия любой кнопки мыши.

Выбор центра эллипсоидальной зоны производится путем нажатия левой кнопки мыши. Затем перемещением маркера мыши изменяются радиусы эллипса в вертикальном и горизонтальном направлении. Фиксация зоны производится при нажатии правой кнопки мыши.

Для произвольной зоны выбирается начальное положение контура с помощью левой кнопки мыши. Затем каждое нажатие левой кнопки формирует новый элемент ломаной линии контура произвольной зоны. При непрерывно нажатой левой кнопке зона формируется из смежных точек. Замыкание зоны производится нажатием правой кнопки мыши.

Внимание: избегайте пересечений при формировании контура произвольной зоны, иначе результат будет некорректным.

Когда в качестве типа зоны установлено все изображение, никаких действий для определения зоны не требуется.

Для работы с зоной интереса, прежде всего надо установить ее номер.

Подокна с номерами зон (от 1 до 8) отображены вверху окна ROI в виде горизонтального ряда; для установки нужного номера надо наехать курсором на подокно с этим номером и щелкнуть левой кнопкой мыши; подокно с установленным номером выделяется цветом.

Следующий шаг - установка параметров зоны интереса. Каждая зона характеризуется набором параметров, отображаемых подокнами в правой части окна ROI:

Цвет: Черный/ Синий/ Зеленый/ ЗеленоГолубой/ Красный/ Фиолетовый/ Коричневый/ СветлоСерый/ Серый/ Голубой/ СветлоЗеленый/ ЯркоЗеленоГолуб/ ЯркоКрасный/ СветлоФиолет/ Желтый/ Белый/ Выключен - цвет при выделении текущей зоны, для изменения параметра надо наехать курсором на подокно и щелкнуть левой кнопкой мыши нужное число раз, при значении Выключен - выключается цветовое выделение значений в зоне;

ROI Тип: Прямоугольник/ Окружность/ Эллипс/ Произвольная/ Все изображ. - выбор типа зоны интереса: прямоугольная, круглая, эллипсоидальная, произвольная или все изображение, для изменения параметра надо наехать курсором на подокно и щелкнуть левой кнопкой мыши нужное число раз;

ROI Рез: Статистика/ Гистограмма - выбор отображения статистики или статистики и гистограммы при анализе зоны, для изменения параметра надо наехать курсором на подокно и щелкнуть левой кнопкой мыши;

Теперь можно выделить выбранную зону на изображении, для чего в окне ROI надо нажать кнопку Выбор, после чего надо перевести курсор на изображение и выделить зону. При включенном цветовом выделении предварительно надо выбрать точку на изображении, значение которой будет центром томографического окна выделения, то есть после нажатия кнопки Выбор надо навести курсор на нужную точку и нажать левую кнопку мыши. После выделения зоны в окне изображения отображаются данные статобработки, а если выбран параметр Гистограмма, то во вспомогательном окне отображается и гистограмма, которая гасится щелчком мыши на этом окне. При наличии в файле ct.cfg параметра multiROI и, если ему присвоено ненулевое значение, в качестве результатов выводятся только значения объемов. Выбранная зона маркируется символом * под подокном с соответствующим номером зоны.

Для обсчета ранее выбранной зоны можно пользоваться кнопкой Вызов. Т.е. если под подокном с выбранным номером зоны уже есть *, можно нажать кнопку Вызов и зона выделится автоматически. При нажатии кнопки ВызВсе выделятся все ранее выделенные (помеченные *) зоны.

Примечание: функции Вызов и ВызВсе не работают с произвольной зоной (параметр Тип=Произвольная).

Для передачи результатов обсчета зоны или всех зон в окно с заключением надо нажать, соответственно, кнопки Экспорт и ЭксВсе.

Если необходимо удалить выделенную зону следует нажать кнопку Удалить.

Меню ROI (верхняя строка экрана) обеспечивает возможность запомнить, загрузить или удалить произвольную конфигурацию ROI, а также выполнить дополнительные действия, и содержит четыре элемента:

Загр - загрузка ранее записанной конфигурации ROI из файла,

Запс - запись текущей конфигурации ROI в файл,

Удалить - удаление файла с конфигурацией ROI,

Сбросить - сброс зон без перевывода изображения для измерений по более чем 8-ми областям,

Суммировать - вывод окна для суммирования групповых сумм, полученных при нажатии кнопки ЭксВсе.

Файл конфигурации ROI содержит информацию обо всех зонах ROI. Он может иметь произвольное имя, но должен иметь расширение roi. При выполнении любого из вышеописанных элементов меню выводится таблица файлов поддиректория ROI директория CTSYS для ввода имени файла конфигурации ROI. Далее, в зависимости от выбранного элемента меню, этот файл загружается, записывается или удаляется.

Для всех зон интереса запоминаются последние результаты измерений, которые могут использоваться калькулятором в функции Калькулятор и транслироваться им в протокол измерений.

При нажатии клавиши F1 выводится текст помощи. Выход из функции ROI - кнопка Выход.

Функция Значения в области для выбранной зоны изображения выводит на экран значения плотности в виде чисел. Зона выбирается мышью вышеописанным (в функции ROI) способом. После выбора зоны на экран выводится окно с таблицей чисел и двумя кнопками: Печать и Отказ. Слева от таблицы по вертикали выводится столбец с номерами строк, сверху по горизонтали - строка с номерами столбцов. Если выбранный фрагмент не уместился на экране, выводится столько значений, сколько умещается на весь экран и выводятся дополнительно вертикальная и горизонтальная линейки с рычажками, позволяющими вывести не уместившиеся значения. Кроме того, над и под столбцом с номерами строк дополнительно выводятся соответственно номера начальной и конечной строки выбранной зоны, а слева и справа от строки с номерами столбцов - номера начального и конечного столбца выбранной зоны. Кроме просмотра чисел, их можно напечатать на принтере с помощью кнопки Печать. Выход из функции осуществляется кнопкой Отказ.

Функция Среднее позволяет производить измерения среднего, максимального и минимального значений по квадратной зоне интереса размером 11*11 пикселей при динамическом перемещении зоны. Результаты записываются в параметры текущей зоны. Выход из функции осуществляется нажатием правой кнопки "мыши" или клавиши ESC.

Функция Расстояния позволяет измерять расстояния и углы на текущем изображении. Измерения производятся с помощью резиновой линии. Нажатием левой кнопки "мыши" фиксируется начальная точка отрезка. Перемещение "мыши" приводит к изменению положения конечной точки отрезка. Значения расстояний/углов отображаются на экране в формате:

D1:

A1:

D2:

A2:

и т.д.

Расстояния отображаются в сантиметрах, для томограмм и в пикселях для других изображений, а углы по отношению к горизонтали в диапазоне -90 - +90 градусов. Нажатие правой кнопки "мыши" приводит к фиксации конечной точки отрезка и выводу значений, соответствующих этому отрезку, на экран. Последовательно можно зафиксировать до 8-ми отрезков. Затем каждый вновь введенный отрезок будет как бы выталкивать первый из имеющихся. Выход из функции осуществляется с помощью клавиши Esc или повторным нажатием правой кнопки.

Функция Профиль осуществляет вывод профиля данных. При выборе функции Профиль выводится управляющее окно. В нем отображены два скроллера - горизонтальный и вертикальный. Выбор скроллера автоматически ведет к выбору вертикального или горизонтального сечения для построения профиля. В дополнительном окне отображается номер строки или колонки и выводится максимальное и минимальное значение для данного сечения. Для выхода из функции Профиль достаточно закрыть дополнительное окно или нажать любое другое окно.

Функция Объемы позволяет вычислять объемы нескольких образований по серии томограмм с учетом толщины среза и расстояния между срезами. В случае если томограммы вводились с видеосигнала, предполагается, что расстояние между центрами смежных слоев равняется толщине среза.

При вызове функции Объемы в правый верхний угол экрана выводится окно Объемы, а в верхней строке - меню Объемы.

В окне Объемы находятся:

    подокна, отображающие параметры ROI;

    кнопки изменения параметров;

    функциональные кнопки.

Для работы с объемом, прежде всего надо установить его номер.

Подокна с номерами объемов (от 1 до 8) отображены вверху окна Объемы в виде вертикального ряда; для установки нужного номера надо наехать курсором на подокно с этим номером и щелкнуть левой кнопкой мыши; подокно с установленным номер выделяется цветом.

Далее надо установить параметры зоны интереса аналогично тому, как это делается в функции ROI.

Для вычисления объемов необходимо выделить зону интереса на каждом срезе. Зона интереса выделяется аналогично функции ROI кнопкой Выбор или вызывается кнопками Вызов и ВызВсе. Результаты вычисления объемов отображаются в окне Объемы в строке с соответствующим номером объема. Для смены номера среза служит кнопка IM+. Для передачи результатов вычисления выделенного объема или всех объемов в окно с заключением надо нажать, соответственно, кнопки Экспорт и ЭксВсе.

Для перехода к вычислениям объемов других объектов служат три элемента меню Объемы:

Нов_NO - загрузка нового объекта,

NO+ - переход к следующему объекту,

NO - переход к предыдущему объекту.

При нажатии клавиши F1 выводится текст помощи. Выход из функции Объемы - кнопка Выход.

Как пользоваться калькулятором.

Для работы с калькулятором необходимо активизировать окно Изображения (если оно не было активным), в верхнем меню войти в подменю Изм и выбрать функцию Калькулятор. На экран выводится панель калькулятора, которая имеет вид:

На панели размещены следующие поля:

· отображения операндов (ОП1,ОП2), операции(), результата (РЕЗ), памяти (П);

· клавиш набора чисел;

· клавиш операций;

· клавиш вычислительных функций;

· клавиш вспомогательных функций;

· клавиш работы с памятью;

· клавиш загрузки величин, измеренных ранее на изображении;

Все действия осуществляются "мышью" путем наезда ее курсора на нужную клавишу и нажатия левой кнопки. При этом, если после очередного нажатия кнопки "мыши" должен получиться результат, не отпуская кнопку можно видеть в соответствующих полях оба операнда, операцию и результат. После отпускания кнопки "мыши" результат перемещается на место первого операнда, а поле второго операнда очищается. На место любого операнда можно загрузить одну из величин, измеренных ранее на изображении. Так как каждая из этих величин может иметь до восьми значений, то после выбора нужной величины (осуществляется подсветка клавиш "1"-"8") необходимо ввести нужный номер значения этой величины. Например, если необходимо ввести величину расстояния, измеренного вторым, надо нажать на клавишу "D", а затем на клавишу "2".В калькуляторе имеется память на одно число - регистр П. Поле работы с памятью имеет клавиши, позволяющие производить следующие действия:

Сбр - очистка «П»,

ПЗ - загрузка в «П» из поля "ОП1",

ПЧ - загрузка в поле "ОП1" из «П»,

П<>x - обмен полей "ОП1" и «П»,

П+ - сложение «П» с "ОП1",

П- - вычитание из «П» "ОП1",

П* - умножение «П» на "ОП1",

П/ - деление «П» на "ОП1".

Результаты арифметических операций с "П" помещаются также в "П". Помимо арифметических операций в поле вычислительных имеются клавиши SQRT - вычисление квадратного корня из "ОП1" и клавиша 1/x - вычисление значения 1/"ОП1". Вспомогательная функция "BACK" стирает последнюю цифру при наборе операнда, при многократном "нажатии" можно стереть весь операнд. Вспомогательная функция "UNDO" возвращает ситуацию, в которой находился калькулятор до последнего "нажатия", в отличие от предыдущей функции ее действие однократно. Вспомогательная функция "x>Text" помещает значение "ОП1" в файл "text", она может использоваться, когда при наборе текста в текстовом окне появляется необходимость вставки в текст нужных числовых значений.

При нажатии клавиши F1 выводится текст помощи. Выход из функции - закрытие окна (щелчок мыши в левый верхний угол)

Подменю элемента Манип (манипуляции)

Сложить изобр.

{Ctr/A}

сложение изображений

Вычесть изобр.

{Ctr/S}

вычитание изображений

Инверсия

{Ctr/V}

позитив/негатив текущего изображения

Фильтры

->

фильтрация изображений

Фрагменты

->

функции работы с фрагментами экрана

Масштаб/ Поворот

{Ctr/R}

масштабирование и поворот изображения

Зеркало

{Ctr/W}

получение зеркального изображения

Увеличить

{Ctr/Z}

выбор и масштабирование фрагмента изображения

Масштаб X Y

{Ctr/L}

выбор размеров изображения в пикселях

Растянуть окно

{Ctr/I}

выбор прямоугольной зоны и контрастирование изображения в ней

Окно - по средн.

{Ctr/E}

установка центра окна отображения по значению среднего для текущей зоны интереса

Перегрузить

{Ctr/O}

перевывод текущего изображения

Сложение изображений

Функция позволяет получить среднее текущего изображения и выбранного при входе в функцию. При входе в функцию появляется текущий каталог изображений, аналогичный используемому в функции Откр IM. После выбора файла выполняется сложение изображений. Полученный результат замещает в памяти текущее изображение и выводится на экран. К новому изображению применимы операции фильтрации, измерений и работы с фрагментами.

Вычитание изображений

Функция аналогична предыдущей, но производит вычитание выбранного изображения из текущего изображения.

Инверсия изображения

Функция инвертирует изображение путем построения инверсной таблицы преобразования яркости при выводе на экран. Повторный вызов функции возвращает исходный режим отображения.

Подменю элемента Фильтры

Smooth

{Shift/1}

фильтp сглаживания

Mean

{Shift/2}

фильтp усpедненного сглаживания

Contour

{Shift/3}

фильтp подчеpкивания контуpов на основе матpицы pазмеpом

3*3 пикселей

Variable

{Shift/4}

фильтp пеpеменного сглаживания

Edge-enhancing

{Shift/5}

фильтp улучшения контуров

Edge-enhancing

with smooth

{Shift/6}

фильтp сглаживания контуpов

Shading

{Shift/7}

фильтp обpаботки полутонов

Smoothing 2*2

{Shift/8}

фильтp сглаживания (усpеднение на основе матpицы pазмеpом

2*2 пикселей)

Median

{Shift/9}

медианный фильтp

Contour

{Shift/0}

контуpный фильтp (матpица pазмеpом 5*5 пикселей)

Matrix 3*3

{Shift/<}

матричный фильтр 3*3

Matrix 5*5

{Shift/>}

матричный фильтp 5*5

Filter Setup

{Shift//}

установка характеристик матричных фильтров

Некоторые алгоритмы фильтрации изображений в системе CTsoft

A

B

C

Обозначение элементов изображения в матрице 3*3, наиболее часто используемой

D

E

F

для фильтрации изображений

G

H

J

Smoothing Gaussian filter

Smoothing filter via mean value formation

Contour filter

Variable filter

> >

где

P(x,y) - фильтруемая центральная точка

P(r) - пиксель внутри выбранной матрицы

R1/R2 - радиус матрицы фильтруемого фрагмента изображения в пикселях в X,Y направлениях

S1,S2 - весовой фактор в X,Y направлениях

r - радиус пикселя

Edge-enhancing filter

> >

Edge-enhancing, smoothing filter

> >

Shading filter

> >

Smoothing filter via averaging with 2*2 pixel matrix

> >

Contour filter with 5*5 pixel matrix

> >

Подменю элемента Фрагменты:

Сохранить изображение

сохранение всего текущего изображения из окна Изображения как фрагмента

Выбрать и сохранить

выбор и сохранение фрагмента экрана

Сохранить окно

сохранение окна Изображения как фрагмента

Загрузить

загрузка ранее сохраненного фрагмента и размещение его на экране

Загрузить в формате PCX

загрузка ранее сохраненного фрагмента в формате PCX в отдельное окно

Для функций сохранения фрагмента перед их записью выводится окно выбора типа файла фрагмента. Возможен выбор форматов IMG, BMP и PCX. В формате IMG фрагмент записывается в файл в виде последовательности байтов, начиная с левого верхнего угла фрагмента строчка за строчкой. В начале файла помещаются два параметра типа Int16, определяющие размер фрагмента по X и Y. После выбора типа файла выводится окно для задания имени файла. В зависимости от формата файл должен иметь расширение IMG, BMP или PCX.

Функция Масштаб/ Поворот позволяет поворачивать изображение на произвольный угол и масштабировать его с произвольным коэффициентом. После вызова функции выводится окно, содержащее два числовых параметра: Масштаб и Угол. Параметр Scale имеет по умолчанию значение 1, Угол - 0. Угол поворота задается в градусах и отсчитывается против часовой стрелки. В результате поворота и масштабирования получается изображение, которое может обрабатываться, как обычная томограмма или снимок, и сохранено в файле с помощью функции Сохранить как ...

Функция Увеличить позволяет выделять произвольный фрагмент изображения и увеличить его до размера текущего изображения.

Функция Масштаб X Y позволяет изменить размеры изображения, задавая количество точек по каждой координате, в которое вы хотите преобразовать исходное количество точек.

Функция Растянуть окно позволяет выбрать прямоугольную зону интереса и контрастировать изображение в ней. Левая верхняя граница зоны устанавливается при нажатии левой кнопки "мыши". Зона расширяется до нужного уровня и ограничивается нажатием правой кнопки. Если в процессе расширения зоны выясняется, что следует изменить начальную точку зоны, необходимо вновь нажать левую кнопку "мышки" в нужном месте и повторить вновь процесс задания зоны. Нажатие правой кнопки "мыши" фиксирует конфигурацию полученной зоны и контрастирование изображения в ней на всю шкалу яркости.

Функция Окно - по среднему устанавливает значение центра окна отображения, равное среднему значению, полученному при обработке текущей зоны интереса. Если для данной зоны не производилось измерений, устанавливается значение 0.

Функция перезагрузки изображения Перегрузить загружает в память и на экран исходное изображение, т.е. удаляет с экрана результаты манипуляций.

Подменю элемента Серв

Двойное окно

вызов окна для работы с комбинацией CW-окон

Цветная палитра /Стандартная палитра

перевывод в цветной палитре/стандартной палитре

Раскрасить

цветовое кодирование выделенных диапазонов значений

в изображении

Создать объем

генерация объема по серии срезов

Стереотаксис

манипуляции по вводу системы координат в срезы, полученные со специальными метками, и получению координат точки цели

Двойной масштаб/

Масштаб 1:1

{Ctr/D}

увеличение изображения в два раза с интерполяцией/ воз-

врат к исходному масштабу

3D параметры

дополнительные

Hide all

отменить все назначения по отображению точек, линий

и динамики

Show points

отображать точки 3D измерений в текущем окне

Show lines

отображать проекции линии в текущем окне при 3D изме-

рениях

Show curve

отображать проекции произвольной линии в текущем окне

при 3D измерениях

Show all

отображать проекции всех примитивов в текущем окне

при 3D измерениях

Show dynamics

отображать след инструмента в текущем окне при 3D визуализации динамических эффектов в окне Animation

Не выделять/

Выделять

изменение значения флага выделения при загрузке объекта, если значение параметра Не выделять, то при загрузке объекта все изображения - не выделены, иначе - все выделены, если после загрузки объекта вы выделили часть изображений, то изменение этого параметра приведет к инверсии выделения

Установка окон

установка значений параметров C и W из набора 1-5 в качестве текущих параметров

Параметры экрана

выбор и установка разрешающей способности экрана:

640*480 , 800*600, 1024*768

Функция Двойное окно позволяет выводить изображение не в одном CW-окне, а в нескольких с помощью выводимого нижеприведенного окна.

Стандартно всегда включено CW-окно с номером 1. Включение другого окна производится следующим образом:

    выбирается номер окна (при этом кнопка Вкл отобразится как Вык);

    устанавливаются, если это необходимо другие значения C и W;

    нажимается кнопка Вык (при этом она отобразится как Вкл);

    нажимается кнопка Уст - установить.

Выключается окно приведением кнопки Вкл/ Вык в состояние Вык и нажатием кнопки Уст.

Кнопка Поз при нажатии перевыводится как Нег и служит для перехода от позитива к негативу и наоборот.

Функция Раскрасить позволяет раскрашивать изображение - она выводит пиксели, попавшие в один из трех заданных диапазонов, соответственно одним из трех цветов: красным, зеленым или синим. Диапазоны выбираются с помощью линеек выводимого при обращении к функции окна, приведенного ниже.

Движок вертикальной линейки меняет текущий центр всех трех диапазонов, а горизонтальной - общую ширину трех диапазонов, которая делится на три. Первый диапазон находится в пределах между числами D1 и D2, второй - между D2 и D3 и третий - между D3 и D4. Значение центра равно (D1+D4)/2. Выход из функции - гашение окна (квадрат в левом верхнем углу).

Функция Создать объем обеспечивает построение объемного представления по серии последовательных срезов. При вызове функции вызывается меню настройки параметров объемного представления:

Select Mode

Select/All

Режим выбора области для включения в объем: Select -выбор прямоугольника на первом изображении, All - все изображение

Bit per voxel

8/16

Разрядность объемного представления

Filters

Вык/1-12

Выбор номера фильтра

To pack result

Yes/No

Флаг упаковки получаемого объемного представления

Circle cut

Вык/Вкл

Включение/выключение обрезки эллипсом периферийных значений изображения

Start file

Load/Current

Флаг выбора первого файла изображения при построении объемного представления: Load - загружать, Current - начинать с текущего изображения

X0:

128

Х -координата центра эллипса

Y0:

128

Y - координата центра эллипса

EA0:

110

радиус эллипса по горизонтали

EB0:

115

радиус эллипса по вертикали

Функция Установка окон обеспечивает возможность сохранять, редактировать и выбирать текущее окно из семи пар чисел (C,W). При входе в функцию выводится окно ввода, где помимо указанных семи пар чисел, выведены 2 параметра и 7 кнопок с номерами окон (от 0 до 6) и кнопка Отказ. Текущее окно имеет номер 0. Первый параметр имеет два значения (при нажатии меняются на противоположное). Первое значение - Установка выбранного окна. При этом если нажать на кнопки с 1 по 6, соответствующие значения C и W перепишутся в текущее (0) окно пере выведется изображения и функция завершится. Второе значение Фиксация текущего в выбранном приводит к тому, что при нажатии кнопок с 1 по 6 произойдет запоминание значений C0 и W0 в соответствующей паре. Второй параметр включает/выключает двойное окно-изображение выводится одновременно в двух окнах (всегда 0 и 1). Чтобы установить двойное окно, надо при выходе нажать кнопку 0. То есть, кнопки 1-6 всегда устанавливают одинарное окно. Установить заранее подготовленные окна можно также с помощью клавиатуры - клавишами 0-6 (0-включает/выключает двойное окно)

Что еще можно делать с помощью меню окна Изображения.

Функция Удал производит удаление либо изображения выведенного в окно Изображения, либо заранее выделенных изображений, перед удалением выводится окно подтверждения.

Функция Мфор производит подготовку экрана для вывода на мультиформатную камеру. Если в вашем компьютере имеется соответствующее оборудование (плата FrameGrabber) и к нему присоединена мультиформатная камера, происходит вывод на нее. Выход из этого режима - нажатие любой клавиши.

Функция Печ действует в режиме загрузки объекта. Если есть выделенные изображения, они печатаются с ранее установленными параметрами.

Какие параметры системы можно установить элементом подменю Setup меню CT.

Выводится окно изменения системных параметров. В нем можно установить следующие параметры системы:

- тип меню,

- масштаб при импорте сечений из 3D,

- шаг изменения уровня С,

- шаг изменения уровня W,

- цвет надписей,

- цвет надписей при печати с экрана,

- цвет линий,

- порт принтера.

Как работать с видеосигналом - окно FG Сервис

Окно FG Tools состоит из шести функциональных кнопок и меню.

Функция Нов.пациент/ Стоп запрашивает информацию о новом пациенте/завершает цикл ввода изображений.

Фамилия и возраст:

Номер пациента:

Номер снимка:

Толщина среза:

Диаметр зоны:

Комментарий 1:

Комментарий 2:

Дополнительная информация:

Число кадров в фильме:

OK

Отказ

Некоторые значения предлагаются по умолчанию, но могут быть изменены. Номер пациента должен быть уникальным, иначе возможно стирание ранее введенных изображений. Ввод начального номера снимка позволяет, в случае необходимости, начать ввод изображений не с первого снимка и дополнять уже имеющиеся изображения данного пациента.

Функция Запись (оцифровка и запись текущего видеоизображения) фиксирует изображение, записывает его в файл изображения и выводит его на экран.

Функция Запис.фильм записывает последовательность изображений в соответствии с заданным числом кадров с максимально возможной скоростью - порядка 4 кадров в секунду.

Функция Показ.фильм проигрывает записанный или загруженный фильм.

Функция Фиксир.кадр сохраняет текущий кадр записанного или загруженного фильма с текущими NO и NS. Следует применять эту функцию до нажатия кнопки Стоп.

Функция Загр.фильм загрузить ранее записанный фильм и запустить его проигрывание.

FG Устан

Установка параметров ввода изображений

*Кадр +

Переход к следующему кадру фильма

*Кадр -

Переход к предыдущему кадру фильма

*Фильм в изобр.

Преобразование всех кадров фильма в изображения

Изобр.как фильм

Проигрывание изображений начиная с текущего

*Удалить

Удаление текущего фильма

* - фильм должен быть загружен.

Подменю элемента FG Устан

Используется для настройки конкретной платы поставщиками системы при инсталляции.

· H Total` - частота строчной развертки

· H Displayed - количество пикселей в строке /8

· H Sync Position - сдвиг изображения по горизонтали

· H Sync Width - ширина строчного синхроимпульса

· V Total - частота кадровой развертки

· V Adjust - плавная настройка частоты кадровой развертки

· V Displayed - количество линий по вертикали

· V Sync Position - сдвиг изображения по вертикали

· Interplace Mode - 3 - чересстрочная развертка, 1 - прогрессивная

· Max Scan Line Address - всегда 15

· Scan frame size: 128 -выбор размера области динамической визуализации

· Scan X-Left: 0 -выбор левой X-координаты области динамической визуализации относительно левого верхнего угла матрицы в CT

· Scan Y-Up: 0 -выбор верхней Y-координаты области динамической визуализации относительно левого верхнего угла матрицы в CT

· Save X - x-координата сохраняемого прямоугольника

· Save Y - y-координата сохраняемого прямоугольника

· Save NX - размер по x-координате сохраняемого прямоугольника

· Save NY - размер по y-координате сохраняемого прямоугольника

Как работать с текстовой информацией - окно Текст.

Окно предназначено для редактирования и печати предварительно загруженных текстовых файлов. Стандартный вариант - это редактирование заключения. Заключение-это текстовый файл, относящийся к пациенту с номером NO, имеющий имя формата c<NO>.txt и расположенный в директории с путем, указанным в конфигурационном файле ct.cfg в параметре ctxt (информация о ct.cfg приведена в приложении). Если этот параметр отсутствует, путь директории заключений-\ctxt. При загрузке изображения, если заключение уже имеется, оно автоматически загружается в окно Текст. Если в конфигурационном файле параметр concl равен 1, то при загрузке изображения, если заключения нет, оно создается с начальным содержимым, которое берется из файла text рабочего директория, который является текущим шаблоном. Кроме того, перед этим текстом вставляется шапка, состоящая из двух строк с названием учреждения, датой и идентификацией пациента (эта информация берется из изображения). При активизации окна Текст в верхней строке выводится меню:

Файл +Автозапись Формат Печать Показ фраз.

При работе со строкой меню Файл выводится подменю для работы с файлами:

Загрузить текст - загружает в окно файл с расширением txt;

Записать текст - производит запись в текущий файл;

Очистить - очищает окно;

Загрузить шаблон - загружает файл с шаблоном (должен иметь расширение txt) из директория \pattern.

Записать шаблон - записывает текст окна в файл с шаблоном (должен иметь расширение txt) в директорий \pattern.

Строка + Автозапись означает, что включен режим автоматической записи нового состояния окна, нажатие приводит к инверсии ситуации, строка приобретает вид - Автозапись:

Формат - происходит форматирование текста, которое заключается в удалении переносов слов и в склейке строк, если следующая строка начинается с первой позиции, а не с табуляции или с пробелов.

Печать - происходит печать находящегося в окне текста.

При щелчке мыши на строку меню Показ фраз в правый угол экрана выводится подсказка для загрузки в окно словосочетаний, которые заранее набраны в файле phrase.txt. Гасится повторным щелчком на строку меню Показ фраз.

При нажатии F1 выводится текст подсказки, который гасится нажатием клавиши Esc.

При наборе теста в текстовом окне, текст справа от курсора сдвигается вправо. Он может стать невидим при превышении строкой заданной ширины, которая определяется количеством символов умещающихся в строку при выводе на принтер, но не пропадает. При достижении курсором заданной ширины строки происходит автоматический перенос курсора на следующую строку вместе с возможно ушедшей вправо частью строки, и она становится видимой.

Стрелка влево

Перемещение курсора

Стрелка вправо

Перемещение курсора

Стрелка вверх

Перемещение курсора

Стрелка вниз

Перемещение курсора

Page Up

Листание текста вверх

Page Down

Листание текста вниз

Insert, Ins

Включение/отмена режима вставки

Delete, Del

Удалить символ справа от курсора

Backspace

Удалить символ слева от курсора

Home

Встать на начало строки

End

Встать на конец строки

Enter

Разрыв текущей строки на месте курсора

F3

Маркировать текст

F4

Отменить маркировку текста

Cnrl(F3)

Удалить маркированный текст и запомнить его

Cnrl(F4)

Вставить удаленный в последний раз текст

F5

Изменение цвета фона

F6

Изменение цвета текста

F8

Удаление строки

F9

Склеивание строк, начало следующей строки попадает на место курсора в текущей

Alt+буква

Загрузка соответствующего словосочетания, определяемого из файла phrase.txt

Alt+F1

Удалить только что загруженное словосочетание

F1

Вывод текста помощи

Кнопки "мыши"

Исполнение функций меню или позиционирование курсора в поле текста

Как работать с окном ввода формы

Окно ввода формы применяется во многих местах пакета и служит для модального ввода значений параметров, т.е. выход из окна возможен только при нажатии одной из управляющих кнопок.

Имя

окна

формы

Параметр 1

: Значение параметра 1

Параметр 2

: Значения параметра 2

Параметр 2

: Значение параметра 3

Параметр 4

: Значение параметра 4

....

:

:

Параметр N-1

: Значение параметра N

Параметр N

: Значение параметра N

OK

Cancel

Редактирование строки при вводе формы

(ввод имени файла и т.п.)

Insert, Ins

Включение/отмена режима вставки

Delete, Del

Удалить символ справа от курсора

Backspace

Удалить символ слева от курсора

Home

Встать на начало строки

End

Встать на конец строки

Стрелка влево

Перемещение курсора; перебор вариантов циклически вправо для вариантного поля ввода

Стрелка вправо

Перемещение курсора; перебор вариантов циклически влево для вариантного поля ввода

Стрелка вверх

Переход из одного поля ввода в другое

Стрелка вниз

Переход из одного поля ввода в другое

Enter

Закончить ввод с результатом, определяемым высвеченной кнопкой

меню

Esc

Отменить ввод

Tab

Переход из режима ввода полей к меню и обратно

Кнопки "мыши"

Исполнение функциональных кнопок или позиционирование курсора в поле ввода для вариантных полей ввода (левая кнопка-перебор вари-

антов циклически вправо, а правая - влево)

Как работать с архивом изображений.

В случае пополнения архива работа делится на следующие два этапа:

    подготовка изображений для записи на носители, т.е. создание архивных файлов;

    копирование архивных файлов на архивный носитель (магнитооптический диск, магнитная лента).

Выполнение второго этапа производится либо автоматически, если путь архива указывает на ваш архивный носитель (например, на имя устройства магнитооптики), либо с помощью специальных программ (например, Tape для стриммера).

В случае извлечения из архива этапы выполняются в обратном порядке.

Для работы с архивом необходимо активизировать окно Управление (если оно не было активным) и активизировать элемент верхнего меню Архив. Выводится окно для установки параметров, выбора работы и выбора директориев. В этом окне выводятся подокна со следующими параметрами и их значениями по умолчанию:

Эти параметры можно менять. Внизу под параметрами выведены два ряда клавиш.

В первом ряду четыре клавиши для выбора нужной работы:

АРХИВ РАЗАРХИВ УПАКОВКА РАСПАКОВКА. Предварительно выбранная работа подсвечена зеленым цветом; если надо сменить работу щелкните левой кнопкой мыши на нужной клавише.

Для каждой работы в файле pasoudes.dat заводится по две строки с путями исходной и результирующей директории в следующем порядке: распаковка, упаковка, разархивирование, архивирование. Значения этих строк, т.е. пути можно менять клавишами ПУТЬ ОТКУДА и ПУТЬ КУДА

Во втором ряду - клавиши: ПУТЬ ОТКУДА для выбора пути исходного директория

ПУТЬ КУДА для выбора пути директория результата

Отказ отказ от функции.

Значения параметров обрезки определяют процедуру, производимую над изображением перед упаковкой, которая состоит в том, что все числа, отображаемые пикселями изображения, (например, для рентгено-томограммы это числа Хаунсфилда) меньшие минимума приравниваются минимуму, а большие максимума приравниваются максимуму, все остальные числа остаются без изменения. Это означает, что при последующей распаковке мы получим числа только в диапазоне окна обрезки. То есть, при сужении окна обрезки происходит некая потеря информации; в виде компенсации за эту потерю мы получаем более эффективную упаковку. Соответственно вышеизложенному, значения минимума и максимума окна обрезки выбираются так, чтобы это окно включало бы в себя все значимые числа изображения.

Значение параметра "Выполнить работу над всеми файлами или выборочно" "над всеми" приводит к тому, что после запуска работа будет выполнена над всеми файлами изображений в соответствующем поддиректории без участия оператора. Значение "выборочно" приводит к тому, что после запуска программа будет ждать от оператора действий, описанных ниже.

Значение параметра "Удалять исходные файлы при работе с архивом" "да" приводит к удалению соответственно архивируемых или разархивируемых файлов; значение "нет" исключает удаление.

Следующий параметр позволяет выводить сообщения о неудачах упаковки-распаковки и тогда оператор может прервать этот процесс.

Следующие два параметра позволяют задать режим создания архива из упакованных или неупакованных изображений и режим разархивирования до упакованных или до неупакованных изображений.

При нажатии на клавиши выбора путей ПУТЬ ОТКУДА, ПУТЬ КУДА выводится соответствующее окно. Выбранные пути отображаются в окне работы с архивом. После выбора параметров и путей для запуска программы работы с архивом надо щелкнуть левой кнопкой мыши на заранее выбранной клавише работы (т.е. на клавише зеленого цвета). Все окна исчезнут, и запустится программа упаковки/распаковки и работы с архивом, которая описана ниже.

Процедура архивирования изображений заключается в упаковке файлов с изображениями (если они не были предварительно упакованы) и в соединении упакованных файлов, относящихся к одному пациенту, в один файл. Упаковка файлов с изображениями производится по определенному алгоритму и дает выигрыш в 4-5 раз. Процедура разархивирования обратна процедуре архивирования. Согласно системным соглашениям неупакованные, упакованные, и архивные изображения располагаются в разных директориях, начальные пути которых определяются в файле ct.cfg.

Пути исходной и результирующей директории программа берет из файла pasoudes.dat в соответствии с выбранной работой. Процедуры архивирования и разархивирования производятся над изображениями или архивами, находящимися в соответствующих директориях.

Если выполнение работы было задано с параметром "выборочно", программа работает в "ручном" режиме. На экран выводится две строки: в первой (вверху экрана) отображается вид работы и значения параметров окна обрезки, а в дальнейшем отображаются сообщения программы; во второй (внизу экрана) - меню типа Нортон.

Вначале оно содержит следующее: 1Help 2WorkC 3Min 4Max 5Choic...10Quit.

Оператор имеет возможность:

· получить подсказку - F1;

· изменить вид работы нажатием клавиши F2 или нажатием кнопки мыши при наезде на поле "F2" или поле с названием вида работы в верхней строке;

· в режиме упаковка и архивирование изменить значения минимума и максимума окна обрезки данных; то осуществляется соответственно клавишами F3,F4 или нажатием кнопки мыши при наезде на поля "F3","F4" или поля со значениями границ и дальнейшим редактированием и выходом по Enter в случае правильной редакции или по Esc в случае отказа;

· выбрать файлы, над которыми будет выполнена заданная работа, что осуществляется нажатием клавиши F5 или нажатием кнопки мыши при наезде на поле "F5";

· выйти из программы -F10.

При выполнении оператором функции выбора файлов нижняя строка экрана модифицируется и выглядит следующим образом: 1Help 2Esc 3Exec 4+All 5+Page...8-Page 9-All 10Quit.

Затем выводится таблица файлов и сообщение в верхней строке:

Всего файлов NN Из них выделено 0 (NN- общее число файлов).

Таблица файлов состоит из двух колонок. В первой находятся номера объектов NO в порядке возрастания, во второй - списки номеров срезов NS. Строка таблицы - это NO и список NS этого объекта. Сверху таблицы - строка, отображающая путь исходного директория. В правом верхнем углу таблицы выведено "Esc" для отказа от функции выбора с помощью мыши, а также, в случае, когда таблица не умещается на одном экране (листе), в левом верхнем углу и в правом нижнем выводится соответственно "PgDn" и "PgUp" для листания таблицы с помощью мыши.

Оператор теперь имеет возможность:

· получить подсказку - F1;

· отказаться от функции - F2;

· выйти из программы -F10.

А также, осуществить выбор и инициировать выполнение работы.

Выбор в таблице файлов осуществляется функциональными клавишами или специальным курсором. Текущее положение курсора отображается цветом. Движение курсора осуществляется стрелками или мышью (курсор мыши наводится на нужное место и нажимается Enter). Выбрать можно отдельное изображение, строку, лист и все файлы. Выбранные файлы выделяются цветом. Аналогично можно отменить выбор.

Выбор всех файлов и всех файлов экранного листа осуществляется клавишами F4, F5; отмена - F8, F9.

Выбор файлов строки или отдельного файла осуществляется подводом курсора на начало строки или на нужный файл и нажатием Enter или кнопки мыши. В процессе выбора в верхней строке отображается число выделенных файлов.

Запуск выполнения работы осуществляется с помощью клавиши F3 или нажатием кнопки мыши при наезде на поле "F3". При этом в верхнюю строку выводится сообщение:

Всего файлов NN Из них успешно 0 (NN- число выделенных файлов).

После успешного выполнения работы над текущим файлом он "гасится" в таблице файлов и корректируется верхняя строка сообщений. Нижняя строка экрана модифицируется и выглядит следующим образом: 1Help...4Set 5Choic...10Quit.

Прервать выполнение работы можно клавишей Esc. По окончании оператор имеет возможность:

· получить подсказку - F1;

· войти в режим установки вида работы (начало программы) - F4;

· войти в режим выбора файлов (осуществить новый выбор) - F5;

· выйти из программы -F10.

ГЛАВА 2.

Как работать с трехмерными объектами.

Окна 3D визуализации

окно 3D preview

обеспечивает визуализацию каркаса объемного представления в текущем положении для трехмерной визуализации, вывод аксиального, коронарного и сагиттального сечений с проекциями секущих плоскостей и ориентации объемного представления.

окно 3D view

предназначено для вывода трехмерного изображения с возможностью отображения на нем аксиального, коронарного, сагиттального и параксиального сечений и построение внешнего вида объекта.

окно 3D measurе

обеспечивает проведение трехмерных измерений значений объемного распределения и расстояний в объеме для окон 3D preview, 3D view, и Изображения, а также выделения кривых для построения параксиальных и произвольных сечений и выбора точек цели и входа при планировании операций.

окно Animation

позволяет создавать последовательности сечений для динамического просмотра при введении инструмента с привязкой к трехмерным координатам объекта и проводить с их использованием планирование операций.

Окна 3D визуализации работают совместно с окнами Изображения и окном Текст. Все окна 3D визуализации имеют общее меню, отдельные элементы которого связаны с различными окнами, а другие воздействуют на активное в данный момент окно. Некоторые элементы меню активизируются только при наличии определенного типа данных в памяти. К окнам 3D визуализации относятся:

Окно 3D preview для предварительного просмотра аксиального, коронарного и сагиттального сечений и ориентации отображения в окне 3D view.

Окно 3D view для просмотра объемного представления в различных ракурсах с наложенными аксиальным, коронарным, сагиттальным и произвольным сечениями и внешним видом объекта.

Окно Animator для построения и просмотра анимационных последовательностей, позволяющих просматривать траекторию прохождения инструмента при вмешательстве и корректировать ее путем изменения координат точек входа и цели.

Окно 3D Measure для измерений координат, плотностей и расстояний в объеме и задания траектории оперативного вмешательства.

Структура меню окон 3D визуализации имеет следующий вид:

File

загрузка/генерация объемного представления и полученных при работе данных и изображений

Load volume

загрузка объемного представления из файла

Load 3D view

загрузить ранее сохраненное 3D изображение

Save 3D view

сохранить 3D изображение

Load film

загрузка файла данных анимационного планирования

Save film

сохранение файла данных анимационного планирования

Generate Cube

генерация тестового полутонового куба

Generate Ball

генерация тестовой полутоновой сферы

Write log

записать результаты измерений в текстовое окно

Options

установки параметров

Off/On Projections

включить/выключить отображение сечений

3D view settings

установить параметры 3D отображения

Set measure font

загрузить фонт для окна измерений

Redraw

перерисовка 3D представления

Measure

измерения

Entry/Target

задание точек входа и цели

Points

измерения с фиксацией точек в объеме

Lines

измерение расстояний и задание косых срезов

Clear

очистить установки и результаты измерений

All

очистить все установки

Points

удалить выделенные точки

Lines

удалить выбранные линии

Animator

работа с анимационными последовательностями

Make

запуск генерации данных анимационной последовательности, определенных Entry point и Target point

Play P

запуск просмотра анимационной последовательности в динамическом режиме

Fix entry

установить фиксацию точки входа или цели

Параметры 3D визуализации

Param

->

параметры окна 3D view

Color:

0/1/2/.../15 - номер цвета для фона

Axial:

on/off - включить/выключить аксиальное сечение

Coronar:

on/off - включить/выключить коронарное сечение

Sagital:

on/off - включить/выключить сагиттальное сечение

Oblique

on/off - включить/выключить параксиальное сечение

Scale

1.0 - масштаб вычисления 3D образа

Управление при работе с анимационными последовательностями

+

переход в пошаговый режим или переход к следующему кадру анимационной последовательности

-

переход в пошаговый режим или переход к предыдущему кадру анимационной последовательности

*

увеличение скорости показа анимационной последовательности

/

уменьшение скорости показа анимационной последовательности

Кнопки окна 3D measure

Entry Point

задание точки входа при планировании операции, выбирается на окне Изображения

Target Point

задание точки попадания при планировании операции, выбирается на окне Изображения

Start

начать измерения

Приложение.

Конфигурационный файл системы ct.cfg.

Стандартные пути системных директорий

image = c:\ctsys\images\*.*

; неупакованные изображения формата ct_soft

imagep = c:\ctsys\images_p\*.*

; упакованные изображения формата ct_soft

archiv = c:\ctsys\ima_arch\*.*

;архивные файлы формата ct_soft

select = c:\ctsys\box\

;отобранные изображения формата ct_soft

proi = c:\ctsys\roi\*.roi

;конфигурационные файлы зон интереса

pattern = c:\ctsys\pattern\*.txt

;файлы шаблонов заключений

ctxt = c:\ctsys\ctxt\

;файлы заключений

help = c:\ctsys\help\

;файлы подсказок

ljconf = c:\ctsys\roi\*.clj

; конфигурационные файлы печати

frag = c:\ctsys\scrfrag\*.img

;файлы фрагментов изображений формата ct_soft

pcx = c:\ctsys\scrfrag\*.pcx

;файлы формата PCX

bmp = c:\ctsys\scrfrag\*.bmp

;файлы формата BMP

img = c:\ctsys\img\

;файлы формата ОБРАЗ

3dvol = c:\ctsys\3d\*.vol

;файлы 3D

cinema = c:\ctsys\cin\*.cin

;анимационные файлы 3D

films = c:\ctsys\films\*.*

; анимационные файлы FG

Общие параметры

3dscale = 1

;начальное значение масштаба изображения

2dmode = 1

cell = 280x16

; не менять

menu = fix

;не менять (menu= fall)

ct_type = 0

;начальный тип изображения 0 - РТ , 1 - МР

multiROI= 0

;0 - до восьми зон интереса 1- больше восьми с выводом только объёмов

concl = 1

; 1 - создается (если его нет) заключение (c<NO>.txt) по шаблону text; 0 - не создается

FG-параметры

fgtype = 0

; 0 - FG, 1 - VS54

fgnx = 512

fgny = 512

fgx0 = 0

fgy0 = 0

; fgscale = 0 - ввод 512*512 1 - 256*256

fgscale = 1

; fgrem = 0 - ввод через мышь 1 - с кнопкм

fgrem = 0

fgboard = 0

; присутствие панели FG

Параметры печати

lj_res = 1

; разрешение принтера при печати изображений 0 - 300, 1 - 600 , 2 - 1200 dpi-<= max разрешения принтера

lj_rgn = 0

; обрезка перед печатью 1 - прямоугольник

pix_res = 0

; размер матрицы пикселя 0 - 4*4 , 1 - 8*8

ncopy = 1

; количество копий

prprot = 1

; 0 - не печатать протокол, 1 - печатать

margine = 10

; отступ при печати по X в мм.

martxt = 0

; отступ при печати текста по X в мм.

interx = 1

intery = 1

; промежутки между изображениями при печати в мм.

prscale = 1.0

; коэфф.увеличения(>1. <4.) /уменьшения(<1. >.3) IMG при печати

fl_5L = 0

; альтернативный код готовности принтера

fonthead= 0

; признак крупного фонта для печати заголовка

corc = 0.1

; коррекция центра окна для печати (c=c-corc*w)

prnport = 0

;LPT 0 - 2 2-отсутствие принтера

format = 0

;0 текст не форматируется

;1 текст форматируется

fbnum = 6

pr_arch = 0

; параметр выбора работы с протоколом архивирования

; отсутствие , 0 или не (1,2,3) - не просматривать и не печатать

; 1 - просмотр (протокол вводится в окно "text")

; 2 - печать с запросом подтверждения

; 3 - печать без запроса подтверждения

TYPE=RANDOM FORMAT=PAGE>24


Темой моего дипломного проекта было передача информации из ультразвуковой медицинской диагностической установки в персональный компьютер.

Данный дипломный проект выполнялся в рамках программы «телемедицина» на базе института хирургии им. А. В. Вишневского.

На сегодняшний день от 60 до 80% медицинской диагностической информации хранится в виде изображений. В связи с этим наиболее актуально стоит вопрос передачи информации из медицинского диагностического оборудования в персональный компьютер для дальнейшего анализа, обработки, хранения и передачи по современным линиям связи.

Получение, обработка и анализ информации из ультразвуковой медицинской диагностической установки связано с определенными трудностями, которые можно разделить на три группы:

    Проблема получения диагностически адекватного изображения для дальнейшей диагностики, анализа и хранения;

    Проблема сопряжения диагностического оборудования с системами передачи информации;

    Проблема передачи полученной информации к «удаленным» пользователя.

Для решения данных проблем разработана следующая схема передачи данных из ультразвуковой медицинской диагностической установки в персональный компьютер. (плакат 1)

Я осуществлял подключение ультразвуковой диагностической установки ALOCA SSD 650. Она осуществляет срез информации органов исследуемого пациента на глубину до 30 см. от места контакта с телом пациента и работает на частоте от 2 до 7,5 мГц. И выводит информацию на экран с разрешением 640 * 480 с 64 уровнями градации серого. Полученная информация преобразуется в стандартный видеосигнал, который может быть снят с специализированных выходов.

Захват и обработку информации из ультразвуковой медицинской установки осуществляется устройством, называющимся frame grabber. Оно позволяет в «реальном времени» преобразовать видеосигнал в цифровое изображение и сохранить его в персональном компьютере. К frame grabber’у предъявляется ряд характерных требований. Это должно быть устройство, позволяющее длительную оцифровку видеосигнала в реальном времени, обладать высокоскоростной «шиной», для быстрой передачи полученной информации в персональной компьютер. В нем должна быть предусмотрена возможность настройки яркости и контрастности для первоначальной настройки при подключении к медицинской диагностической установке и оно должно быть совместимо со всеми основными современными операционными системами. Всем этим требованиям удовлетворяет frame grabber HI*DEF PLUS фирмы IMAGRAPH. Данный frame grabber позволяет получать 256 уровней градации серого, что позволяет иметь запас по разрешению изображения для ультразвуковых медицинских установок более высокого класса и получать изображения, над которыми можно производить определенные операции. Кроме того, это сравнительно недорогое устройство, в своем классе, что является преимуществом, т.к. наши медицинские учреждения финансируются не достаточно.

Frame grabber передает информацию в передает информацию в персональный компьютер первичного пользователя. Оптимальной конфигурацией персонального компьютера первичного пользователя является P2 – 400, 128, 4.3 + 18 SCSI, 8 V I740.

Данная конфигурация предоставляет возможность осуществлять захват изображения из ультразвуковой медицинской диагностической установки, поддерживать режим телеконференций, осуществлять передачу получаемого сигнала по сети в реальном времени и обрабатывать получаемую информацию. Но т.к. парк персональных компьютеров в медицинских учреждениях России, на данное время, состоит из персональных компьютеров устаревших моделей, то в этом случае можно использовать лишь основные функции - захват и обработку изображений. Это можно осуществлять на персональных компьютерах класса DX4 – 100 с 16 мБ оперативной памяти, размером жесткого диска 800 мБ и сетевой картой NE2000 или совместимой.

Персональный компьютер первичного пользователя позволяет передавать полученную информацию по компьютерной сети. Вопросы передачи информации по компьютерной сети подробно рассматриваются в дипломном проекте Еремеева Артема, который также выполнял дипломную работу в рамках проекта «телемедицина».

К персональному компьютеру вторичного пользователя предъявляются те же требования, что и к персональному компьютеру первичного пользователя, за исключением того, что у в нем не устанавливается frame grabber для захвата изображения с ультразвуковой медицинской диагностической установки.

В результате захвата изображения получается файл в котором необходимо отобразить не только информацию собственно о картинке, но и дополнительную. Для этого был разработан формат файла плакат 2 , который содержит в себе следующие поля:

    Информационное поле, содержащее в себе имя и возраст пациента, дату и время исследования, режимы в которых были получено изображение, размеры матрицы изображения, разрешение изображения и дополнительную техническую информацию, представленную в приложении 1;

    Матрицу изображения.

Информационное поле данного файла на прямую связано с характеристиками ультразвуковой медицинской диагностической установки, frame grabber’а и персональным компьютером.

В рамках данной работы, в результате взаимодействия с медицинским персоналом, возникла необходимость преобразования изображений для выделения областей, контуров этих областей, границ образований. Для этого мною были внедрены ряд фильтров. Это сглаживающий фильтр, медианный сглаживающий фильтр, контурный фильтр и полутоновой фильтр. Результаты воздействия данных фильтров на изображение можно наблюдать плакат 3. По результатам консультирования с врачами, было выявлено, что их применение дает наиболее хороший эффект при последовательном воздействии на изображение нескольких фильтров. Это можно наблюдать на плакате 4. Это было апробировано специалистами и было выявлено, что результаты воздействия этих фильтров на изображение несут в себе высокую практическую ценность.

В данной дипломной работе было:

    Сделано внедрение системы в ультразвуковую медицинскую диагностическую установку ALOKA SSD 650, в отделении ультразвуковой диагностики института хирургии им. А. В. Вишневского;

    Получено изображение, захваченное из данной установки;

    Осуществлена связь с удаленными пользователями в реальном времени;

    Проведена экспертная оценка данной системы, которая подтвердила её эффективность.

Данную систему можно внедрять в рамках проекта «телемедицина», для развития медицинских телеконференция и телеконсультаций.

Отзыв руководителя

На дипломный проект «Передача информации из ультразвуковой медицинской диагностической установки ALOCA SSD – 650», выполненный студентом – дипломником Максимовым Дмитрием Вячеславовичем.

На дипломном проектировании перед Д.В. Максимовым была поставлена задача – разработать систему передачи информации из ультразвуковой медицинской диагностической установки на персональный компьютер с дальнейшей обработкой получаемой информации.

В процессе работы дипломант показал хорошее понимание поставленной задачи, умение самостоятельно разыскать и разобраться в литературе, умение грамотно использовать современные средства программирования. Исследованные и реализованные в проекте принципы будут использованы в дальнейшей разработке математического обеспечения медицинского назначения.

Д.В. Максимов с заданием справился полностью. Над проектом работал самостоятельно, организованно и ритмично.

Считаю, что дипломный проект заслуживает оценки ОТЛИЧНО, а
Д.В. Максимов – присвоения квалификации «инженер – физик».

Руководитель,

Зав. лабораторией кибернетики Института хирургии им. А.В. Вишневского РАМН

кандидат физ – мат наук

Е.Н. Тимин

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ

МОСКОВСКИЙ ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ

ИНЖЕНЕРНО - ФИЗИЧЕСКИЙ ИНСТИТУТ

(технический университет)

ВЕЧЕРНИЙ ФАКУЛЬТЕТ

Кафедра № 25

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к дипломному проекту на тему :

«Передача информации и ультразвуковой медицинской диагностической установки ALOKA SSD – 650»



Студент – дипломник: Д. В. Максимов.

Руководитель проекта: зав. лаб. кибернетики, канд. физ. - мат. наук
Е. Н. Тимин.

Консультант: зав. лаб. РНЦ «Курчатовский институт», канд. физ. – мат. наук
А. В. Пестряков

Рецензенты: директор ООО «КДС» канд. физ. - мат. наук, лауреат Гос. премии СССР
В. А. Нестеров.

Ген. Директор ООО «ЦВС (DiViSy)» канд. физ. - мат. наук
В. А. Казинов.

Зав. кафедрой 25: доктор физ. - мат. наук, профессор Ю. А. Быковский.

Москва -1999 г.

Аннотация

Дипломный проект посвящен разработке системы передачи данных из ультразвуковой медицинской диагностической установки, а также получением диагностически адекватного изображения для дальнейшей диагностики, анализа и хранения. Обработка полученных изображений базируется на программном комплексе CTsoft.

Система предназначена для работы в отделениях ультразвуковой диагностики и не требует от пользователя дополнительных знаний по программированию и техническому обслуживанию персональных компьютеров. Она предоставляет пользователю удобный экранный интерфейс для получения и обработки высококачественных изображений, переданных из ультразвуковой медицинской диагностической установки, кроме того, она предусматривает возможность дальнейшей передачи полученных данных по компьютерной сети.

Система прошла опытную эксплуатацию в институте хирургии им А. В. Вишневского в рамках проекта «телемедицина». Отчетные материалы к дипломному проекту включают пояснительную записку, 3 приложения и графический материал.

Содержание

Введение 4

Обзор литературы 7

Разработки телемедицины в мире 7

Необходимость “телемедицины” в России 9

Задачи здравоохранения, решаемые с применением телемедицинских технологий 12

Станции глобальной связи 14

Локальный сервер клиники 14

Локальные рабочие станции 14

Формы применения телемедицинских технологий для решения задач здравоохранения 15

Приложения телемедицины в клинической практике 16

Требования к передаче телемединформации 17

Анализ возможности передачи медицинских данных существующими программно – аппаратными средствами 20

Подключение ультразвуковой медицинской диагностической установки ALOKA SSD - 650 23

Ультразвуковая диагностическая установка
ALOKA SSD – 650 25

Общие характеристики устройства 25

Принцип построения выходного сигнала 27

Устройство согласования УЗИ с персональным компьютером первичной обработки данных 29

Основные характеристики HI*DEF Plus LF 31

Формат файла получаемого изображения 32

Персональный компьютер первичной обработки 35

Локальная вычислительная сеть 38

Особенности построения компьютерной сети для института хирургии им. А. В. Вишневского 38

Программное обеспечение и сетевое оборудование 43

Персональный компьютер консультанта 45

Использование фильтров 46

Фильтр сглаживания 48

Фильтр усредненного сглаживания 49

Фильтр подчеркивания контуров 50

Фильтр обработки полутонов 51

Последовательное использование фильтров 52

Заключение 54

Выводы и результаты: 55

Список литературы 56

Приложение 1 58

Формат информационного поля файла изображения 58

Приложение 2 62

Модуль формирования фильтров изображений (С++) 62

Приложение 3 94

Описание программы обработки изображений Ctsoft 94

Введение

Несмотря на сложность экономической ситуации, в стране быстро нарастает парк современной медицинской аппаратуры: ультразвуковые аппараты, компьютерные томографы, биохимические анализаторы и т.д. Однако, в силу неполного использования современных медицинских знаний, новые методики внедряются на местах крайне неэффективно. Как показывает опыт, уровень диагностики и лечения в центральных клиниках (а они сосредоточены главным образом в Москве) значительно превосходит уровень практического здравоохранения в стране, даже при том, что разница в уровне оснащения не велика. При этом в медицине объем знаний удваивается в 1,5 - 2 раза быстрее по сравнению с другими разделами науки. Таким образом, стратегически важной задачей становится организация принципиально нового взаимодействия работников практического здравоохранения с центральными научно-диагностическими учреждениями, так чтобы практическое здравоохранение в регионах могло бы оказывать высококвалифицированную помощь населению, используя имеющееся оборудование и интеллектуальный потенциал лучших клиник страны.

Экономическая ситуация в стране изменилась таким образом, что диагностическая помощь населению регионов со стороны центральных клиник становится практически недоступной, при том, что ресурсы ведущих медицинских центров вполне позволяют оказывать эту помощь. Затраты на приезд в Москву становятся сравнимыми, а подчас и превосходят саму стоимость диагностики и лечения. Как показывает статистика широкопрофильного медицинского центра (Института хирургии им. А.В. Вишневского РАМН) до 1995 года за диагностической помощью обращалось порядка 10-12 тыс. пациентов в год из различных регионов страны, сейчас это количество упало до 1 тыс., при этом Институт в год проводит обследования до 70 тыс. пациентов (москвичи) и в состоянии довести это число до 120-150 тыс.

Имеющиеся и активно развивающиеся в стране современные средства связи (спутниковая, оптоволоконная, радиорелейная) позволят объединить региональные и центральные лечебные учреждения в единую сеть и таким образом обеспечить “доставку интеллектуального потенциала лучших клиник страны в те места, где в нем экстренно нуждаются”.

Очень большие перспективы в этом плане сулит “телемедицина” - сочетание современных научных методов диагностики и лечения заболеваний с ускоренной обработкой и анализом клинико-физиологической и медико-социальной информации на базе электронно-вычислительной техники и средств связи в режиме теледоступа.

Выполнение перечисленных выше задач невозможно без технической базы, которая должна быть реализована в каждом медицинском учреждении, входящим в проект «телемедицина». Эта техническая база должна включать в себя парк персональных компьютеров, объединенных в единую сеть с централизованной базой данных, подключением к медицинским диагностическим установкам и иметь выход на внешние линии связи.

Вопросы рассматриваемые в рамках нашего дипломного проекта включают в себя решение следующих задач:

    разработка компьютерной сети для института хирургии им. Вишневского;

    подключение диагностического оборудования к этой сети;

    организация видеоконференций;

    разработка программного обеспечения для передачи данных с медицинских установок (УЗИ, томограф и т.п.).

В дипломном проекте рассмотрен вопрос подключения ультразвукового диагностического аппарата к сети и решение обеспечения качественной передачи данных по сети. С возможностью вывода на печать с использованием печатающих устройств общего назначения. А также анализ полученных данных.

Обзор литературы

Разработки телемедицины в мире

Первой страной, поставившей телемедицину на практические рельсы стала Норвегия, где имеется большое количество труднодоступных для традиционной медицинской помощь мест. Второй проект был осуществлен во Франции для моряков гражданского и военного флотов. А сегодня уже трудно назвать западно — европейскую и американскую страну, где бы не развивались телемедицинские проекты, причем особый размах нарастание сеансов «телемедицины» получило в США.[8]

Получают развитие и международные сети медицинских телекоммуникаций, направленных на разные цели: система “Satellife” для распространения медицинских знаний в развивающихся странах и подготовки кадров, “Planet Heres” — предложенная ВОЗ система глобальных научных телекоммуникаций, международной научной экспертизы и координации научных программ, другие системы и сети.

Толчком к развитию телемедицины стало и то, что быстрый прогресс современных методов исследования привел реально к социально неприятному следствию: отставанию уровня диагностики в учреждениях практического здравоохранения в регионах сколь угодно развитой страны от центральных исследовательских и клинических медицинских центров. И по мере бурного развития медицинской науки этот разрыв не сокращается, а увеличивается. Поэтому стратегически важной задачей во многих странах стала организация принципиально нового взаимодействия работников практического здравоохранения с центральными научно—диагностическими учреждениями, направленного на обеспечение эффективной, высококвалифицированной и эшелонированной медико — санитарной помощи.[5]

Необходимость “телемедицины” в России

Развитие телемедицины в России необходимо по ряду причин и, более чем в любой другой развитой стране, должно опираться на учет многолетних традиций эшелонированной медико–санитарной помощи, больших расстояний, трудностей оснащения всех медицинских учреждений современной диагностической и другой медицинской техникой.

1. Разрыв между уровнем диагностики в сети практического здравоохранения и в ведущих медицинских центрах России больше, чем в Германии, Франции или США. Десять лет назад это было связано с большой разницей в уровне оснащения, сегодня – с системным кризисом здравоохранения, резким сокращением финансирования, буквальным «отрывом» периферии от центра.

2. Социально–экономические изменения в стране сделали диагностическую и консультативную помощь населению регионов со стороны центральных клиник практически недоступной, притом что ресурсы ведущих медицинских центров вполне позволяют оказывать эту помощь. Затраты на приезд в Москву становятся сравнимыми, а подчас и превосходят саму стоимость диагностики и лечения. Социальное напряжение в регионах и их претензии к центру растут, способствуя и росту центробежных тенденций.

3. В случае, если заболевание попадает в разряд бюджетной или страховой медицины и обходится больному бесплатно, пациент обычно находится в региональной клинике 10–15 дней и в результате диагностики устанавливается, что ему могут помочь только в центре. Он направляется в центр, госпитализируется, и процесс диагностики повторяется в течение тех же 10 – 15 дней. Это неоправданное расходование ресурсов может быть предотвращено за счет дистанционного консилиума при унификации диагностических процедур на базе современной техники и полноценной передачи диагностической информации.

4. Между тем страна связывалась воедино разными способами, в т.ч. и эшелонированной системой медицинской помощи как в годы мира. так и войны. Это было основой военно – медицинской доктрины периода ВОВ, специализированной помощи в послевоенные годы. Эта психология воспринята народом. Сегодня эта доктрина разрушена, управленческая вертикаль разрушена. Но разрушена и методологическая вертикаль медицинской помощи, разрушено единство научного сообщества.[7]

Телемедицина позволяет компенсировать значительную часть потерь, но больше того, она компенсирует это не на прежнем, а на качественно новом уровне телекоммуникаций и неизмеримо больших возможностей быстрого получения , обработки, передачи и анализа больших массивов информации, что делает качественно новым и уровень диагностики болезней, изменяет связи центра и периферии без простого патронажа со стороны центра (в отношении науки).

Это скачок в новую информационную эпоху, причем вполне вероятно, что в России телемедицина даст даже больший эффект, чем за рубежом, именно в силу наших традиций и менталитета. При этом могут быть использованы традиционные преимущества системы здравоохранения, при которой звенья первичной медико–санитарной помощи (ПМСП) выдвигаются как можно ближе к населению, туда, где люди живут и работают, а специализированная и высококвалифицированная помощь оказывается в тех городах, где для организации такой помощи имеются финансовые и техническое возможности и где численность населения обеспечивает достаточное количество сложных клинических случаев заболеваний.

Это будет не простая компенсация прошлых функций, а перевод их на качественно новый технический и методологический уровень (равный переходу от писем и курьеров к современному телефону, телевидению и пр.).

Реализация проекта “Телемедицина” позволит повысить уровень медико–санитарной помощи населению, обеспечить ускоренный рост научно–практического потенциала медицинских учреждений регионов.[17]

Задачи здравоохранения, решаемые с применением телемедицинских технологий

Возможности использования телемедицины разнообразны и раскрываются по мере накопления опыта, они, несомненно, могут оказать значительное воздействие на решение всех функций системы здравоохранения: на развитие и координацию науки, профилактику заболеваний, экстренную и плановую помощь при заболеваниях, подготовку и усовершенствование кадров, маневрирование материально–техническими ресурсами, управление системой и повышение эффективности ее функционирования как в чрезвычайных ситуациях, так и при решении типовых задач в плановом порядке.[18]

В самом общем виде можно сказать, что здравоохранение нуждается в обработке больших массивов информации и телекоммуникациях для:

    Мониторинга и оценки состояния и динамики здоровья населения, в т.ч. наиболее угрожаемых групп и отдельных людей, а также факторов внешней природной и социальной Среды, влияющих на здоровье населения;

    Мониторинга состояния системы здравоохранения, ее резервов и готовности к решению текущих и экстренных проблем;

    Обеспечения эффективной первичной медико—санитарной помощи (ПМСП) для всех (в любое время, в удаленных и труднодоступных местах)

    Обеспечения высоквалифицированной немедленной медико—санитарной помощи (МСП) в экстренных ситуациях (повсеместно).

    Обеспечения плановой методологической поддержки региональным и местным органам и учреждениям здравоохранения со стороны центральных (федеральных и других) научно—исследовательских, клинических и организационных центров в решении сложных проблем диагностики, лечения и профилактики заболеваний.

    Подготовки и усовершенствования медицинских кадров.[13]


Станции глобальной связи

Локальный сервер клиники

Локальные рабочие станции


Формы применения телемедицинских технологий для решения задач здравоохранения

    Телеконференции (научные и научно—практические, методологические и др.)

    Телеконсилиумы (двух— и многосторонние)

    Консультации и организационная помощь при экстренных и чрезвычайных ситуациях (бедствия, аварии, травмы, эпидвспышки и др.)

    Дистанционный мониторинг больных (ЭКГ и пр.)

    Автоматизированные истории болезни (что особенно важно в страховой медицине). При необходимости может осуществляться передача содержащейся в них информации (при переезде пациента в другой город, при заочных консультациях и пр.), включая передачу неискаженных изображений (ЭКГ, рентгенограммы, УЗИ, лабораторные данные, др.)

    Теледоступ в научные Базы данных в центральных учреждениях России, стран СНГ и в зарубежных научных центрах.

    Взаимодействие с Международными сетями и системами телемедицины и телекоммуникаций (ВОЗ, НИЗ, др.). [12]

Приложения телемедицины в клинической практике

Требования к передаче телемединформации

Для решения большинства задач телемедицины необходим режим телеконференции, когда врачи в отдаленном медицинском учреждении и в центральном институте видят друг друга и пациента, могут разговаривать между собой. Однако этого недостаточно, поскольку основную информацию при сложных диагностических случаях врач получает в виде изображений внутренних органов или биопсий. Это — микроскопические, рентгеновские, ультразвуковые, радиоизотопные исследования и их более сложные и аналоги, как компьютерная томография, динамическая ангиография.

Поэтому системы телемедицины (СТМ) должны быть готовы к передаче (без потери качества) следующих видов информации: изображения, получаемые с диагностической аппаратуры, аналоговые сигналы, таблицы закодированной информации и/или свободный текст.[16]

Необходимы единые стандарты для объединения разнородных форматов изображений и создания единого цифрового набора для его дальнейшей пересылки. Существующие в Германии "Sienet", в США "PAКS" и другие еще не удовлетворительны по "интеллектуальной" наполненности , поэтому аналогичные подходы развиваются в России (в МГУ, ИКИ и др.) на уровне, заметно превосходящем упомянутые коммерческие системы.

Требования к аппаратуре для передачи и воспроизведения изображений высоки. При воспроизведении компьютерно—томографических, рентгеновских и ультразвуковых изображений необходимы не менее 256 градаций "серого" цвета. Высокой должна быть и скорость передачи изображений. Поэтому во избежание быстрого морального старения системы необходимо закладывать скорость передачи порядка 2,048 мБит/с.

Существенную часть информации о больном составляют аналоговые сигналы (ЭКГ, ЭЭГ, реограммы и др.), которые практически повсеместно эти кривые оцифровываются до введения в компьютер. Частотный диапазон всех физиологических сигналов не превышает 1 кГц, обычно у одного пациента регистрируется несколько (от 2 до 5) аналоговых кривых. Здесь будет требоваться разработка протоколов обмена информацией и стандартов на форматы передачи данных.

Таблицы закодированной информации не будут составлять большого объема и не потребуют скоростей выше, чем при передачи изображений. Основные трудозатраты потребуются на формализацию медицинских данных и унификацию протоколов обмена информацией. Иначе будут неизбежными разночтения (а в результате — повторение диагностики) при переходе пациента из одного лечебного учреждения в другое.

Передача свободных текстов не предъявляет особых требований к системе передачи информации, но избежать передачи свободных текстов не удастся, т.к. не вся медицинская информация может быть формализована и закодирована.[15]

Для эффективной диагностики заболеваний (особенно хирургических) на одного пациента требуется получение от 3 до 20 изображений разного характера. Так, например, для диагностики опухолей печени и поджелудочной железы требуются компьютерно—томографическое, ультразвуковое, ангиографическое исследования одновременно. Для диагностики сердечных и сосудистых заболеваний необходимы рентгеновские, магниторезонансные, ангиографические исследования.

Анализ возможности передачи медицинских данных существующими программно – аппаратными средствами

При организации передачи данных от медицинского диагностического оборудования возникает ряд технических проблем, связанных с высокими требованиями предъявляемыми к качеству передаваемой информации. Эти проблемы можно разделить на три основные группы:

    Проблема получения диагностически адекватного изображения для дальнейшей диагностики, анализа и хранения.

    Проблема сопряжения диагностического оборудования с системами передачи информации.

    Проблема передачи полученной информации к «удаленным» пользователям.

Первая проблема связана в первую очередь с психологией восприятия специалистами – врачами результатов получаемых от медицинских диагностических установок, т.е. они чаще всего, не подготовлены к работе с альтернативными вариантами предоставления медицинской, такими как, например, изображение на мониторе персонального компьютера. В связи с этим информация, с которой предполагается работать на персональных компьютерах, должна быть предоставлена в «привычном» для специалистов виде. Кроме того, программа обработки информации, должна быть простой в использовании и интуитивно понятной, что позволит сократить время адаптации и обеспечить быструю возможность перехода к работе с новыми методами предоставления медицинских данных.

Вторая проблема связана с тем, что не существует единого стандарта формата предоставления и хранения медицинских данных. Фирмы – разработчики медицинского оборудования основываются на собственных стандартах, которые закрыты, зачастую несовместимы с аналогичными системами других фирм, и могут изменяться в последующих разработках и модификациях уже существующего оборудования. Попытки стандартизирования форматов хранения и отображения медицинских данных привели к появлению нескольких стандартов, наиболее известным из которых является DICOM3, но которые всеобщего распространения не получили. Исходя из всего выше сказанного, можно заключить, что каждая медицинская диагностическая установка требует индивидуального подхода для обеспечения возможности передачи информации.

Также существует ряд проблем возникающих при попытках обеспечения высокого качества передаваемой медицинской информации, связанных с тем, что современные программно – аппаратные средства не специализированы для передачи данных подобного рода. Это накладывает определенные требования к подбору оборудования для передачи информации из медицинской диагностической аппаратуры на персональные ЭВМ. Специализированных (стандартных) программных средств, предназначенных для обработки медицинской информации (изображений) на персональных ЭВМ на данный момент практически не существует. Использование программ общего назначения, для работы с медицинскими данными, практически невозможно. Это связано с тем, что требуется высокий уровень специальной подготовки специалистов – врачей, и требования, предъявляемые к персональным ЭВМ, для установки программ такого класса, неоправданно высоки, что практически невозможно из-за неоправданно высоких материальных и временных затрат.

Третья проблема связана с ограничениями, накладываемыми на передаваемую информацию, современными средствами связи. Медицинские данные (изображения, звук, видео) невозможно передавать в «реальном времени» по современным каналам связи, с тем качеством, которое требуется для удовлетворительной работы специалиста. Объемы информации требуют разработки специальных алгоритмов сжатия данных и выработки новых методик передачи информации.

Предлагаемые методы решения вышеперечисленных проблем описаны в настоящем дипломном проекте на базе подключения для передачи данных ультразвуковой диагностической установки ALOKA SSD – 650 к персональному компьютеру с последующей передачей данных по компьютерной сети.

Подключение ультразвуковой медицинской диагностической установки ALOKA SSD - 650

В связи с тем, что для осуществления удаленных консультаций необходимо качественная передача данных от медицинских установок к специалистам, к оборудованию захвата, передачи и отображения информации предъявляются определенные требования, которые будут рассмотрены ниже. Общая схема передачи изображения от ультразвуковой диагностической установки к врачу – консультанту представлена на рис 1.

рис. 1 Общая схема передачи изображения от УЗИ к врачу - консультанту.

Исходя из схемы, можно выделить основные рабочие блоки:

    Ультразвуковая диагностическая установка.

    Устройство согласования ультразвуковой диагностической установки с персональный компьютером первичной обработки данных.

    Персональный компьютер для первичной обработки полученного изображения.

    Устройства передачи данных по компьютерной сети.

    Персональный компьютер конечного пользователя (консультанта).

Основными предпосылками для создания данной схемы послужило то, что захват изображения с медицинских установок (в данном дипломе – ультразвуковая диагностическая установка (в дальнейшем УЗИ)), осуществляется через frame grabber HI*DEF Plus LF фирмы IMAGRAPH. Который установлен в компьютере первичного пользователя подсоединен к видеовыходу УЗИ. Первичный пользователь, осуществляющий управление УЗИ, обеспечивает захват изображения с УЗИ и передачу его на персональный компьютер. Далее с персонального компьютера первичного пользователя осуществляется передача изображения по сети до конечного пользователя. В случае необходимости, через сеть может быть организована телеконференция между первичным и конечным пользователями. Предусматривается также передача изображения в базу данных локальной сети первичного пользователя с последующей дальнейшей пересылкой в базу данных сети конечного пользователя, если осуществляется консультация специалистов в различных медицинских учреждениях. Или в общую базу данных локальной сети одного медицинского учреждения, в том случае, когда первичный и конечный пользователь работают в рамках одного медицинского учреждения.

Далее будут рассмотрены отдельные блоки данной схемы.

Ультразвуковая диагностическая установка
ALOKA SSD – 650

Общие характеристики устройства

В данном дипломном проекте передача изображения осуществлялась с ультразвуковой диагностической установки ALOKA SSD – 650, имеющей следующие характеристики:

Общие сведения:

Метод сканирования:

    Электронное линейное сканирование;

    Электронное сканирование с выпуклым сектором;

    Механическое секторное сканирование.

Режим отображения:

    Режим В (возможно формирование 1, 2, 3 или 4 изображений);

    Режим В одновременно с режимом М (режим В/М)

    Режим М.

    Доплеровский режим.

Регулировка чувствительности:

Усиление (GAIN):

Макс. 90 дБ, регулируется непрерывно

Временная компенсация чувствительности (STC):

11 – точечные скользящие регуляторы.

Контраст:

7 переключаемых степеней, независимых для режимов В и М.

Градации серого:

64 уровня.

Емкость памяти изображения:

512 х 512 х 6 бит.

Обработка изображения:

АРУ (AGC):

Режимы В и М, непрерывная регулировка.

(FTC):

Вкл./Выкл. для режима М.

Усиление края

(Edge Enhance):

3 – шаговое переключение.

Последующая обработка

(Post – Processing)

5 видов выбираемых кривых

Направление изображения:

Возможно изменение в поперечном и продольном направлениях (только режим В)

Знаковое отображение:

С использованием всей буквенно – цифровой клавиатуры.

Режимы автоматического отображения:

Дата и время, данные зонда (основная частота), установка усиления, диапазон отображения, фокальные области, данные измерения и расчета и пр., сегмент шкалы серого, метки шкалы.

Другие режимы отображения:

Метка тела (16 картин), направление пункции, курсор режима М.

Функции измерения:

Расстояние, площадь, окружность, объем, скорость, временной интервал, размеры.

Функции расчета:

Анализ левожелудочковой функции, акушерские расчеты (возраст плода, оценка веса плода), доплеровский анализ, отношение, процентный стеноз, гистограмма.

Просмотровый монитор:

9 дюймов по диагонали.

Питание:

115/120/220/240 B10%; 50/60 Гц, 420 ВА.

Вес:

Приблизительно 180 кг.

Требования к безопасности:

Соответствуют IEC 601 – 1, класс 1, тип В.

Принцип построения выходного сигнала

Принцип работы устройства построен на доплеровском эффекте. Считывающий элемент содержит пьезоэлементы (матрицу элементов), которые генерируют сигнал с частотой 2 – 7,5 МГц (стандартный – 3,5 МГц). Отраженный сигнал показывает поверхность отражения (стенки тканей и сосудов). За счет того, что скорость звука различается в разных средах, наблюдаемый результат показывает эквивалент скорости прохождения в данной среде. С этим же связаны и получаемые на изображении полутона. Не смотря на то, что УЗИ видит только «стенки», оно работает только в сплошной среде. Небольшие полости огибаются, более обширные не видны. Отраженный сигнал принимается линейкой датчиков, которые и формируют сигнал структур на пути прохождения сигнала.

Датчик формирует электрический сигнал. Все современные УЗИ – устройства снабжены цифровой памятью. Матрица датчика содержит ~300 элементов. Учитывая частоту развертки и количество принимаемых сигналов мы получаем сигнал, сравнимый по качеству с телевизионным. Более высокое качество практически не достижимо за счет дребезга длины волны.

Полученный сигнал разворачивается построчно и пишется в цифровую матрицу. Обычно используются несколько матриц – основная и несколько дублирующих. Далее сигнал преобразуется в ЦАП, и в результате на выходе мы наблюдаем телевизионный сигнал на мониторе устройства. Видеосигнал также поступает на коммутационную панель. На коммутационной панели обычно присутствуют несколько выходов видео информации, такие как:

    Стандартный видео сигнал формата CR170.

    Видеосигнал в формате RGB + Y.

В данной установке мы имеем разъем стандартного видео, и разъем видео VTR, а также выход для многоформатной камеры. Сигнал стандартного видео подается на frame grabber. Обычно желательно использовать систему 2 канальной передачи данных. 1-й канал используется для передачи обзорного видео сигнала. 2-й для захвата качественной картинки, которая позволит производить какие – либо измерения с полученным результатом и делать какие – либо выводы о состоянии обследуемого пациента.

Возможность 2 канальной передачи данных осуществляется несколькими способами:

    Сигнал «разводится» BNC тройником. (Наихудший вариант из-за потери качества)

    Использование двух frame grabber’ов, медленным, но высококачественным, для получения изображений хорошего качества, и быстрым, использующимся для получения обзорного видеосигнала.

    Использования двухвходового frame grabber’а.

Описание одного из возможных frame grabber’ов представлено ниже.

Устройство согласования УЗИ с персональным компьютером первичной обработки данных

Для согласования персонального компьютера с УЗИ наиболее часто используются устройства захвата изображения – frame grabber’ы. Для получения качественных изображений и уменьшения потерь сигнала при передачи, к данным устройствам предъявляется ряд требований:

    Возможность захвата стандартного видео сигнала: черно – белого или RGB сигналов, или захват сигналов «укороченных» форматов;

    Стандартная синхронизация;

    Возможность подстройки яркости и контрастности.

Одним из возможных вариантов, является frame grabber, описанный ниже.

Устройство согласования персонального компьютера с УЗИ представляет собой frame grabber HI*DEF Plus LF фирмы IMAGRAPH. Он осуществляет захват видеоизображения со стандартного видеовыхода УЗИ. Оцифрование полученного сигнала и преобразование в стандартный цифровой видео сигнал формата MPEG3 или сохранения кадра в виде картинки, форматов BMP, JPEG, TIF, PCX или, если захват картинки осуществляет программа диагностики, то в специализированном формате.

HI*DEF Plus LF фиксирует изображения из любого аналогового источника видеосигнала с высокой точностью и качеством, предоставляет диагностически - качественные изображения для программы коррекции изображения. Некоторые из этих программ включают медицинское отображение типа Teleradiology и PACS, а также сбора данных из компьютерных рабочих станций с высоким разрешением. Самое высокое качество изображения гарантируют режимы HI*DEF: 0.5 ns pixel jitter, 50 dB – отношение сигнала к шуму, минимальная нелинейность, и авто - стабилизация температуры.

Основные характеристики HI*DEF Plus LF

Bus

ISA

Pixel Rate

Up to 30 MHz

Horizontal Frequency

Up to 25 kHz

Inputs

Up to 4

Memory

2 MB

Pixel Jitter

±0.5 ns

vBits per Pixel

8 bits

External Trigger

Yes

Software Platforms

Windows 95
Windows 98
Windows NT 4.0

Формат файла получаемого изображения

Изображения, переданные в персональный компьютер, сохраняются в определенном специализированном формате. Этот формат подразумевает сохранение в файле изображения дополнительной информации о пациенте, исследовании, физических параметрах изображения и т. п.. Структурная схема данного формата представлена на рис. 2.

рис. 2 Формат файла изображения.

Два килобайта в данном файле выделяются под информационное поле. В этом поле содержится:

    Идентификация пациента;

    Режимы, в которых было получено изображение;

    Размер матрицы изображения N>x>, N>y>;

    Дата исследования;

    Разрешение изображения (бит/пиксель);

    Индивидуальный номер изображения;

    Специализированная информация.

(Полная информация о содержании информационного поля представлена в приложении 1).

Далее следует матрица значений, содержащая в себе само изображение в специализированном формате.

Имя файла изображения, тоже имеет специализированный формат, показанный на рис.3.

рис. 3 Формат заголовка файла изображения.

В имени файла, первый символ ( i или p ) указывает на метод сохранения файла. ( p – с сжатием, i – без сжатия ). Последующие 7 символов являются уникальным номером пациента или исследования (в зависимости от того, где применяется данная программа). В расширении файла, первый символ указывает на номер исследования, последующие две указывают на номер среза (измерения).

Персональный компьютер первичной обработки

Основные требования, предъявляемые к персональным компьютерам, осуществляемым первичную обработку данных, с дальнейшей их пересылкой по сети можно разделить на 3 группы:

    Осуществление быстрой и качественной передачи данных из компьютерного томографа в персональный компьютер.

    Возможность первичной обработки и визуализации полученных данных.

    Осуществление быстрой передачи данных в компьютерную сеть для осуществления дальнейшей обработки.

В компьютере должна быть установлена система, обеспечивающая возможность организации телеконференции с удаленным пользователем в реальном времени. Обеспечена возможность подключения печатающего устройства и устройства архивации данных. Очень высокие требования выдвигаются к визуализации изображения, полученного с компьютерного рентгеновского томографа. Разрешение картинки должно быть не менее 1280 х 1024, и цветностью в 16 тыс. цветов (256 градаций серого). Для обеспечения возможности быстрого отображения, видеокарта должна содержать не менее 8 Мбайт памяти. Монитор должен поддерживать данное разрешение и обеспечивать частоту развертки не менее 75 гц. Размер зерна не более 0.26 dpi, и иметь размер диагонали не менее 15 дюймов. Необходимость обеспечения быстрой обработки данных должно быть обеспечено за счет высокопроизводительной системы на базе микропроцессора Pentium II, с тактовой частотой не менее 500 МГц, наличие 128 и более Мбайт памяти. Для временного хранения информации в персональном компьютере должен быть установлен жесткий диск размером не менее 3.2 Гбайта, поддерживающий стандарт Ultra SCSI2. Для обеспечения надежности передачи и сохранности информации к персональному компьютеру должен быть подключен источник бесперебойного питания. Для высокоскоростной передачи данных по сети, в персональном компьютере должна быть установлена сетевая карта со скоростью передачи не менее 10 Мбит/сек. Для обеспечения телеконференции в компьютере должен быть установлен frame grabber с поддержкой формата сжатия видео сигнала MJPEG и встроенным звуком. Для обеспечения возможности архивации данных в нештатных ситуациях в ПК должно быть предусмотрено подключение ZIP драйвера, для сохранения информации на магнитном ленточном носителе. Исходя из всего вышесказанного, приблизительная конфигурация ПК первичной обработки информации представлена в таблице 1.

Для обеспечения работы ПК на нем устанавливается операционная система WindowsNT Workstation. А так же программное обеспечение управления видеоконференциями (Microsoft NetMeteeng или подобная). А также специализированна независимая сервисно – диагностическая консоль для управления и обработки поступающей медицинской информации.

Таблица 1 Комплектация компьютера первичного пользователя.

Основная комплектация:

Корпус

ATX 80List (InWin A500)

Processor

Pentium II 400

Matherboard

ASUS P2B - D

Ram

256 Mb

HDD first

SCSI WDE 4550 – 0025

HDD second

SCSI Wde 18300 – AV0038

SCSI controller

ADAPTEC AHA – 8945

VideoCard

I740

Network Card

Fast EthernLink XL PCI TX – 3C9005B – TX

Monitor

ViewSonic “GA655”

Mouse

Стандартная мышь PS/2

Видеоконференции:

Плата

miroVideo DC30 plus

Камера

MUSTEK VidCam

Дополнительное оборудование:

Frame Grabber

IMAGRAPH HI*DEF Plus LF

Локальная вычислительная сеть

Особенности построения компьютерной сети для института хирургии им. А. В. Вишневского

Локальная вычислительная сеть представляет собой высокоскоростное соединение различных устройств, таких как сервера, рабочие станции и периферийные устройства (принтеры, модемы и т.п.), с общей средой передачи. Что позволяет распределять информацию и ресурсы ЛВС между пользователями.

Выбор топологии и типа ЛВС, а так же сетевых стандартов зависит от задач предъявляемых к ЛВС института хирургии.

Локальная сеть института предназначена для:

    Обеспечения общего доступа к базам данных и другой медицинской информации;

    Передача и обработка видеоинформации;

    Обеспечение аудиовизуального взаимодействия сотрудников института в реальном времени. с помощью системы видеоконференций;

    Предоставление доступа к ресурсам Интернет;

    Предоставление услуг электронной почты.

Отличительной особенностью данной сети является необходимость передачи видеоинформации и взаимодействие сотрудников с помощью видеоконференций. Данные приложения предъявляют жесткие требования к пропускной способности и скорости передачи, создавая значительную нагрузку на локальную сеть.

Изображение в аналоговом видео состоит из 625 для PAL/SECAM (525 для NTSC) строк и состоит из 2 полей по 312,5 (262,5). За 1 секунду передаются 25 (30) кадров или 50 (60) полей. Полоса, занимаемая видеосигналом, достигает 6 МГц.

В цифровом ТВ принято разбиение одного ТВ кадра на пиксели, что наиболее удобно для дальнейшей цифровой обработки. Каждый ТВ кадр разбивается на 768 точек по горизонтали и 576 точек по вертикали для сигналов PAL/SECAM (640 на 480 для NTSC) при стандартном для ТВ соотношении ширины к высоте изображения равным 4:3. Таким образом, получается два полукадра (поля) с разрешением 384Х288 (320Х240 для NTSC) при частоте 50(60) полей или 25(30) кадров в секунду. Для передачи цвета используется принцип сложения основных цветов: красного(R), синего(B) и зеленого(G) цветов. Цветной ТВ сигнал состоит из яркостной (Y) и двух цветоразностных (R-Y и B-Y) составляющих. Для этого используя специальные схемы суммирования из трех составляющих (Y, R-Y и B-Y) восстанавливают исходные составляющие цвета красный (R), синий (B) и зеленый (G) цвета, которые подаются на соответствующие электронные пушки кинескопа.

Для полного восприятия информации о яркости и цвете необходимо каждую точку изображения передавать как минимум 256 уровнями или 8 битным кодированием. Каждая точка цветного видеоизображения должна кодироваться 24 разрядным словом (8 бит Х 3 составляющие) или по компьютерной терминологии 24 бит/пиксель (24bpp). Таким образом, перемножив 24х768х576х25 получаем цифровой поток в 265420800 бит/сек или около 265 Мбит/сек для сигналов PAL/SECAM (221 Мбит/сек NTSC).

Практически кодирование ТВ сигнала происходит несколько иначе, учитывая, что для передачи ТВ изображения используется формат Y, R-Y, B-Y, то по сигналу Y производится полное кодирование (8 бит по 768х576 pics), а по сигналам R-Y и B-Y кодируется либо половина (8 бит по 384х288 pics), либо четверть (8 бит по 192х144 pics) для каждого из сигналов R-Y и B-Y. Для простоты используется запись в виде дроби 4:2:2 (иногда 8:4:4) или 4:1:1 (8:2:2). Следует иметь в виду, что данная дробная запись говорит о количественном соотношении кодируемых точек. Разрядность кодирования каждой точки всегда равна 8, иногда и больше. Перемножив полученные данные, получаем цифровой поток до 177 Мбит/сек для разрешения 4:2:2 и около 111 Мбит/сек для 4:1:1 (Все данные приведены для разрешения PAL/SECAM 768х576х25 кадр/сек).

Для ограничения цифрового потока видеоданных используют алгоритмы сжатия(компрессии). В основном используется два вида очень схожих между собой метода компрессии. Это метод M-JPEC, основанный на графическом формате JPEG, и MPEG (в разных вариациях). Оба метода основаны на дискретно-косинусном преобразовании (DCT) изображения разбитого на блоки. Разница этих методов заключается в исключении избыточной информации из исходного видеоизображения. Если M-JPEG использует только внутрикадровую избыточность (так называемую пространственную), то формат MPEG дополнительно использует и межкадровую избыточность (временную). Сжатие характеризуется коэффициентом компрессии - качественным соотношением между исходным и полученным кадром исходя из необходимости сохранения качества исходного изображения и ограничения цифрового потока видеоданных. На практике применяются коэффициенты от 1:1 (без сжатия) до 20:1 (сжатие исходного кадра в 20 раз). Это соответствует качеству ТВ сигнала от эталона (1:1) до стандарта VHS (20:1).

С учетом сжатия видеосигнала, формату видеозаписи VHS(стандарт PAL, оцифровка 768х576, 384х576 или 384х288, 8 бит 4:2:2) соответствует цифровой поток до 24 Мбит/сек.

Формату видеозаписи SVHS или DV/DVCAM (Стандарт PAL, оцифровка 768х576 8 бит 4:2:2 для SVHS и 4:1:1 или 4:2:0 для DV/DVCAM/DVCPRO) соответствует цифровой поток от 24 Мбит/сек.

Система видеоконференций с разрешением 640х480х25(30) кадров/сек дает цифровой поток 128-512 кбит/с (0,12 – 0,5 Мбит/сек). Рекомендуется для проведения видеоконференций уровня предприятия использовать полосу пропускания 384 кбит/с (0,4 Мбит/сек).

Соответственно, общий цифровой поток ~ 25 Мбит/сек.

Локальная вычислительная сеть способна обеспечить высокую пропускную способность, а следовательно, высокое качество изображения и звука. Однако традиционные ЛВС представляют собой сети с разделяемой средой передачи, т.е. когда одно из устройств передает данные в сеть, все остальные должны ждать окончания передачи, не делая попыток передать в сеть свои данные(доступ сетевых устройств к среде передачи регулируется сетевыми стандартами). Однако широкая полоса пропускания используется и для передачи других потоков данных, а соответственно, возможны задержки передачи, к которым видеопотоки крайне чувствительны, поэтому оптимальным решением является коммутируемая ЛВС. Преимущества коммутации заключаются в сегментировании сетей - делении их на более мелкие фрагменты со значительным снижением числа станций в каждом сегменте. Изоляция трафика в небольшом сегменте приводит к многократному расширению доступной каждому пользователю полосы, а поддержка виртуальных ЛВС (VLAN) значительно повышает гибкость системы. Для обеспечения передачи цифрового потока без задержек необходима полоса пропускания 100/1000 Мбит/сек. Оптимальным решением является сеть Fast Ethernet(10/100Base-TX)/Gigabit Ethernet (1000Base-SX). На уровне сегмента обеспечивается скорость передачи 100 Мбит/сек, на уровне здания 1000 Мбит/сек.

Данная сеть характеризуется следующими параметрами:

    Топология сети – “звезда”;

    Архитектура сети: “Клиент - Сервер/Файл – Сервер”;

    Основной сетевой протокол TCP/IP;

    Физическая среда передачи – кабель на основе неэкранированной витой пары (UTP 5 категории) и многомодовый оптоволоконный кабель.

    Коммутаторы с высокоскоростной шиной и разделяемой памятью.

    Возможность объединения сетей Fast Ehernet и ATM

Программное обеспечение и сетевое оборудование

1. Программное обеспечение для управления и работы с серверами и рабочими станциями:

    Сетевая ОС - Windows NT Server 4.0

    Клиентская ОС - Windows NT Workstation 4.0

    Сервер БД - MS SQL Server 7.0

    Почтовый сервер - MS Exhange Server 5.5

В качестве программного обеспечения для работы с базами данных и сетью можно использовать пакет MS Back Office - 4.0 (Включает в себя NT Server, SQL Server 7.0 Exhange Server 5.5, SMS 2.0, IIS, SNA Server)

2. Программное обеспечение для управления сетью.

    MS SMS 2.0 - Мониторинг сети и рабочих станций, управление рабочими станциями, установка ПО по сети

    Программное обеспечение фирмы 3Сom - Transcend Network Control Services(включает сл. продукты Transcend Enterprise Manager и Transcend Workgroup Manager), Traffix Manager - позволяют управлять сетевыми устройствами, анализировать трафик и статистику приложений, управлять работой сети(реализуется редствами протокола RMON/RMON2). Все программное обеспечение работает под управлением Windows NT Server, Transcend Network Control так же работает под управлением Sun Solstice Domain Manager.

    Сетевое оборудование фирмы 3Com: Коммутаторы серии: SuperStack II 3300 для Ehernet 10/100 Base-TX (витая пара 5 категории, разъем RJ 45), SuperStack II 9000/9300 для Ehernet 100/100 Base-SX (многомодовое оптоволокно).

Персональный компьютер консультанта

Персональный компьютер консультанта использует конфигурацию, аналогичную той, которая была использована для персонального компьютера первичной обработки данных. За исключением установки в ПК сетевой карты для работы с компьютерным рентгеновским томографом и увеличением быстродействия для более детальной и оперативной обработки принимаемой информации, а так же работы с базой данных. Рекомендуемая конфигурация представлена в таблице 2.

Таблица 2 Комплектация персонального компьютера консультанта.

Корпус

ATX 80List (InWin A500)

Processor

Pentium II 500

Matherboard

ASUS P2B - D

Ram

256 Mb

HDD first

SCSI WDE 4550 – 0025

HDD second

SCSI Wde 18300 – AV0038

SCSI controller

ADAPTEC AHA – 8945

VideoCard

I740

Network Card

Fast EthernLink XL PCI TX – 3C9005B – TX

Monitor

ViewSonic “GA771”

Mouse

Стандартная мышь PS/2

Видеоконференции:

Плата

miroVideo DC30 plus

Камера

MUSTEK VidCam

Использование фильтров

Для эффективной работы с полученными из УЗИ изображениями необходимо применять программные средства, которые бы обеспечили возможность обработки изображения и при этом не требовали высокой квалификации обслуживающего их персонала. Данная программа была разработана в РНЦ «Курчатовский институт» и называется CTsoft. В создании этого программного продукта и приняла участие и наша группа дипломников. В размерах данного проекта были предоставлены алгоритмы обработки изображения, позволяющие преобразовывать полученные картинки по специализированным алгоритмам – фильтрам. Данные фильтры предназначены для сглаживания и выделения областей на изображении. Рассматривалось четыре вида фильтров:

    Фильтр сглаживания – Smooth;

    Фильтр усредненного сглаживания – Mean;

    Фильтр подчеркивания контуров на основе матрицы размером 3*3 пикселей – Contour;

    Фильтр обработки полутонов – Shading.

Все вышеуказанные фильтры работают по алгоритмам на базе матрицы размером 3*3 пикселей. Для описания алгоритмов фильтрации используем условные обозначения для каждого элемента данной матрицы см. таблицу 3.

Таблица 3 Матрица пикселей, использованная для построения фильтров.

A

B

C

D

E

F

G

H

J

Для того, чтобы можно было бы сравнить действия этих фильтров, далее будут показано изображение, полученное путем передачи данных из УЗИ в персональный компьютер. Исходное изображение показано на рис. 4. И в конце данного раздела будет показано действие нескольких фильтров для отображения определенных областей на данном изображении.

рис. 4 Исходное изображение.

Фильтр сглаживания

Фильтр сглаживания используется для уменьшения общей контрастности изображения. Основной алгоритм, использующийся в данном фильтре:

Изменение изображения при использовании данного фильтра показано на рис. 5.

рис. 5 Фильтр сглаживания.

Фильтр усредненного сглаживания

Фильтр усредненного сглаживания используется для того, чтобы устранить дефекты изображения, могущие появиться в процессе оцифровки. Одним из самых распространенных дефектов является появление в темной области светлого пикселя или наоборот. Данный дефект устраняется при помощи алгоритма:

Пример использования данного фильтра представлен на рис. 6.

рис. 6 Фильтр усредненного сглаживания.

Фильтр подчеркивания контуров

Фильтр подчеркивания контуров на основе матрицы 3*3 пикселя используется для отображения на изображении областей имеющих «ярко выраженную» границу с другими областями. Алгоритм, использующийся для получения данных областей:

Пример использования данного фильтра показан на рис. 7.

рис. 7 Фильтр подчеркивания контуров.

Фильтр обработки полутонов

Фильтр обработки полутонов используется для построения псевдорельефа. Алгоритм используемый в данном фильтре:

Результат применения данного фильтра к изображению показан на рис. 8.

рис. 8 Фильтр обработки полутонов.

Последовательное использование фильтров

Часто встречается ситуация, когда использование одного фильтра не дает желаемого результата. В таких случаях бывает необходимо последовательное использование нескольких фильтров для получения желаемого результата. В данном разделе мы рассмотрим две комбинации последовательного использования фильтров представленных на рис. 9 и рис. 10. На рис. 6 рассматривается комбинация фильтров: сглаживания – усредненного сглаживания – подчеркивания контуров. На рис. 7 рассматривается комбинация фильтров: сглаживания – усредненного сглаживания – обработки полутонов.

рис. 9 Smooth - Mean - Contour.

рис. 10 Smooth - Mean - Shading.

Заключение

Реформа системы здравоохранения обеспечила рывок в развитии диагностических служб региональных клиник, но одновременно и привела к утере ряда несомненных достижений советского здравоохранения. В частности практически полностью разрушена целостность системы, в результате чего жители регионов не в состоянии получить высококвалифицированную помощь, которая осталась сосредоточенной в центральных московских клиниках. Развитие проекта «Телемедицина» направлено на сохранение и усиление положительных аспектов реформ и на нивелирование возникших негативных последствий.

Объединение клиник страны в медицинскую информационную сеть позволит организовать взаимодействие опытных специалистов центра с начинающими докторами регионов. Работа в этом направлении уже начата, однако до сих пор внутригоспитальные сети, позволяющие обмениваться информацией о больном, находятся на уровне научных разработок. До сих пор не существует единый стандарт формирования пакета медицинской информации, включая изображения (рентген, УЗИ, КТ и т.п.). Только единичные клиники работают над построением сетей, собирающих информацию.

Дипломная работа посвящена решению задачи подключения к сети ультразвукового медицинского диагностического аппарата ALOKA SSD - 650, на выходе которого появляется изображение (УЗИ). Главной задачей работы была передача изображения через локальную сеть в другую часть института. Были разработаны и реализованы алгоритмы предварительной обработки изображений. На момент начала исследования в Институте хирургии им. А. В. Вишневского была начата работа по прокладке оптоволоконного кабеля между двумя зданиями: главным корпусом (в котором расположены диагностические службы) и лаб. Кибернетики (в которой расположены вычислительные мощности и внешние коммуникации). На сегодняшний день фрагмент сети, обеспечивающий передачу изображений, построен, испытан и реально функционирует.

В результате проведенного исследования получены следующие выводы и результаты.

Выводы и результаты:

    Построена система передачи изображения из ультразвуковой диагностической установки в ПК с последующей передачей по компьютерной сети;

    Полученные и переданные изображения были оценены медицинскими экспертами как адекватные;

    Установлено, что пропускная способность коммуникационного канала на удаленных моделях связи должна быть не менее
    64 кб/с;

    Установлено, что разрешающая способность при регистрации изображения должна составлять не менее 768 * 586, при отображении серого клина разрешение должно составлять не менее 10 бит.

Список литературы

    A CASE OF GASTROSCHISIS, Dr. German Quevedo P, Santa Cruz de la Sierra, Bolivia, June 1 st, 1997.

    ELEMENTS OF SUCCESS IN TELEMEDICINE PROJECTS, Mary Moor, Ph.D., October, 1996.

    EUROPEAN COMMITTE FOR STANDARDIZATION.

    Implementing a Telemedicine Programm Across the Mexican-U.S. Border, 1996.

    TELEMEDICINE: ITS PLACE ON THE INFORMATION HIGHWAY, Frederic Williams and Mary Moor, 1995.

    V.D. The Virtual Doctor - медицинские ресурсы Internet в Санкт-Петербурге.

    Видеоконференции в российских клиниках. Е. Тимин, В. Столяр, А. Сильков. Журнал «Открытые Системы» Изд: «Открытые Системы», 1999г.

    Журнал «Медицинская визуализация», Выпуски 1 – 4, издательство "ВИДАР" 1999.

    Журнал Американского Международного Союза Здравоохранения, "Наше Здоровье", Том 5, Выпуск 1, Зима 1997, Раздел "Развитие информационных технологий", Марион Болл и Джудит Дуглас, Статья "Медицинская информатика: там, где встречаются технология и медицина", с. 18.

    Журнал Американского Международного Союза Здравоохранения, "Наше Здоровье", Том 5, Выпуск 2, Весна 1997, Раздел "Активное сотрудничество", Статья "Бишкек-Канзас-Сити", с. 39.

    Информационные технологии в охране здоровья, Санкт-Петербург, 1997.

    Комплекс ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ "Телемедицина", Проект "КИВС-МСЧ. ТП", редакция 1, Санкт-Петербург, Февраль 1997.

    Программа первоочередных мероприятий по реализации программы создания системы телемедицинских услуг в Российской Федерации («Телемедицина»); Главный информационно-аналитический центр при Минздраве РФ, Управление информатизации Федерального Фонда ОМС. Москва 1998г.

    ТЕЛЕКОНФЕРЕНЦИЯ GlobChat, Copyright © 1997, Julius Edlavitch M.D., В. Теплинский, Ноябрь 1997.

    ТЕЛЕМЕДИЦИНА - INTERNET, Copyright © 1997, Марк Стори, В. Теплинский, Январь 1997.

    ТЕЛЕМЕДИЦИНА - АМСЗ, Copyright © 1997, В. Теплинский, Февраль, 1997.

    Телемедицина. Новые информационные технологии на пороге XXI века; Р. М. Юсупов, Р. И. Полонников. – СПб.:СПИИРАН, 1998. – 486с.

    ФЕДЕРАЛЬНАЯ ЦЕЛЕВАЯ ПРОГРАММА «ТЕЛЕМЕДИЦИНА»: Министерство здравоохранения Российской Федерации. Министерство науки и технологий Российской Федерации. Москва 1997г.

    Физика визуализации изображений в медицине; т. 2 под. ред. С. Уэбба. Москва, «Мир», 1991.

Приложение 1

Формат информационного поля файла изображения

Позиция

Название

Значение

Описание

0

n

360

Число проекций

1

m

512

Число отсчетов в проекции

2

nx

512

Число элементов в строке изображения

3

ny

512

Число строк в изображении

4

fi

360

Угол сканирования

5

fi0

0

Начальный угол сканирования

6

r0

125

Радиус зоны обследования

7

ri

150

Радиус зоны реконструкции

8

xi

0

X-координата центра зоны реконструкции

9

yi

0

Y-координата центра зоны реконструкции

10

l

110

Уровень окна отображения

11

w

250

Ширина окна отображения

12

ko

185

Номер объекта реконструкции

13

ks

1

Номер среза реконструкции

14

no

877

Номер объекта визуализации

15

ns

5

Номер среза визуализации

16

alm

5000

Мантисса ALFA*1000

17

alex

-7

Экспонента ALFA

18

pp

400

Порядок регуляризации * 100

19

mk

9

m*2 = 2**mk

20

0

Тип: 0-CTSYS, 1- СРТ-1000М, 2- СТ1010

21

lstp

5

Шаг изменения по уровню окна

22

wstp

20

Шаг изменения по ширине окна

23

scrl

2

Шаг при сдвиге изображения по вертикали

24

ybig

0

Начальный номер строки отображения

25

rd

0

Расстояние от центра до фокуса в мм/10

26

nj

480

Число измеряемых проекций

27

mj

384

Число измеряемых отсчетов

28

nkad

32

Число кадров в фильме

29

nsl

100

Число срезов для 3D визуализации

30

xw1

20

Левая X-координата

31

yw1

65

Верхняя Y-координата

32

xw2

147

Правая X-координата

33

yw2

192

Нижняя Y-координата

34

hz

10

Шаг между слоями в мм

35

max

8000

Максимум

36

min

80

Минимум

40

surf

20

Порог плотности для выделения 3d-поверхности

41

tr

3500

Время повторения

42

te

150

неизменяемый параметр

43

ti

0

Время инверсии

44

nsli

9

Количество срезов на томограмме

45

acc

4

Количество накоплений

46

fov

300

Поле обзора

47

matx

252

X матрицы

48

maty

252

Y матрицы

49

1

50

7

51

pmin

-140

Минимум для обрезки перед упаковкой

52

pmax

220

Максимум для обрезки перед упаковкой

53

ncic

0

Количество полос длинной картинки минус 1

54

yloc

0

Количество строк полной полосы

60

sH3s

180

Сдвиг для второго слоя в микронах

61

sfd

6

Число сдвигов для прямого БПФ

62

nfd

1

(*10) Делитель для спектра

63

nfl

480

(*10) Делитель спектр*фильтр

64

sfi

6

Число сдвигов обратного БПФ

65

nfi

7

(*10) Делитель свернутых проекций

66

imgn

300

(*10) Делитель для изображения

67

?

360

Так надо ???

70

hx0

x0 - координаты прямоугольника обрезки (печать)

71

hy0

13

y0

72

hx1

47

x1

73

hy1

217

y1

74

242

75

128

76

40

77

128

78

40

79

12

80

88

81

230

82

190

83

128

84

125

85

128

86

sque

142

Параметр квадрата

89

3

Нач. отсчет (для теста каналов)

90

568

Кон. отсчет (для теста каналов)

91

6

Число отсчетов в калибровочных зонах

92

39

Рабочая зона детектора 1 и 9

93

46

2 и 10

94

53

3 и 11

95

60

4 и 12

96

67

5 и 13

97

74

6 и 14

98

81

7 и 15

99

88

8 и 16

100

527

Калибровочная зона детектора 1

101

534

2

102

541

3

103

548

4

104

9

5

105

16

6

106

23

7

107

30

8

108

513

Темновая зона детектора 1

109

520

2

110

527

3

111

534

4

112

542

5

113

549

6

114

556

7

115

563

8

116

28

mA

117

0

Угол топограммы (0-359)

118

0

Длина топограммы (512/256)

119

4590

Полная доза, mAs

120

120

Число пикселей в 10 см.

121

4620

Время сканирования (сек.*10)

122

60

Доза, mAs

123

120

Напряжение ,kV

124

4

Наклон плоскости сканирования в градусах

125

8

Толщина слоя в мм.

126

22

Позиция стола пациента в мм. от начала

127

410

Тип системы

Приложение 2

Модуль формирования фильтров изображений (С++)

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <catwinds.h>

#include <bfiles.h>

#include <bytemap.h>

#include <groupwrd.h>

#include <forma.h>

#include <scale.h>

#include <groupcel.h>

#include "color.h"

#include "vectlib.h"

#include "winds.h"

#include "win2d.h"

#include "3d.h"

#include "filtr.h"

#include "config.h"

#include "ctmenu.h"

#include "setup.h"

#include "measure.h"

#include "ct.h"

#include "ct_ext.h"

#include "console.h"

#include "language.h"

#define POROG (GRAY_BASE+GRAY_LVLS*4/5)

extern int ExistWindow(WinHandle w);

extern WinHandle MainControl;

extern WinHandle H3d_view;

extern void InvRect(int x0, int y0, int x1, int y1, WinHandle w, char *s);

extern void redraw_window(WinHandle w);

extern void redraw_cw(WinHandle w);

extern void SetupLUT(DWIND *winds);

extern void Screen_Save(void);

extern Rect correct_rect(Rect r);

extern Rect Set_Rect(WinHandle w);

extern Rect Set_Sqr(WinHandle w);

extern void cell_to_pcx(char *pcx_name, GCHandle ch,

int xmax, int ymax, char *pallet);

/***********************************************************/

void Do_Addsub>_Img(WinHandle w, int fl_sub>)

{ GWHandle chl;

HFILE img_fil,tmp_fil;

long *L,*L1;

int *p,*p1,*p2,*p0,*pp,k,i,j,jz,nx,ny,*pq;

char *hc,*c,name[81];

char *s;

unsigned char *uhc,*pc;

Win2d *ud = h_data(w);

if(!ud->img_name || !ud->ch) return;

if(ud->frag) return;

chl = ud->ch;

s = GetFileName(GetCfgItem("image"),H_CREATE); if (*s == 0) return;

img_fil = HOpen(s,H_READ); if (img_fil == 0) return;

HLocate(img_fil,0l,2048); p = HPosit(img_fil);

L = (long*)p; nx = L[2]; ny = L[3]; ud = h_data(w);

if(nx != ud->iw) { HClose(img_fil); return;}

if(ny != ud->ih) { HClose(img_fil); return;}

if (chl == 0) { HClose(img_fil); return;}

ud = h_data(w);

uhc = (char*)&p[256+128];

if(uhc[249] != 2-ud->ps) return;

if(ud->scale2d == 1)

{

pp = h_malloc(nx*4);

pq = h_malloc(nx*4);

for (j = 0; j < ny; j++)

{ ud = h_data(w);

if(ud->ps == 2)

{ HLocate(img_fil,(long)j*nx*2+2048L,nx*2); p = HPosit(img_fil);

}

else

{ HLocate(img_fil,(long)j*nx+2048L,nx); pc = HPosit(img_fil);

for(i = 0; i < nx; i++) pq[i] = (int)pc[i];

p = pq;

}

GetGWL(chl,(short*)pp,nx,j);

for(i = 0; i < nx; i++)

if(fl_sub>) pp[i] = (pp[i]-2048 - p[i])/2 + 2048;

pp[i] = (pp[i]-2048 + p[i])/2 + 2048;

PutGWL(chl,(short*)pp,nx,j);

}

h_mfree(pp); h_mfree(pq);

}

else

{ p1 = h_malloc(nx*4); p2 = h_malloc(nx*4);

p0 = h_malloc(nx*4); pp = h_malloc(nx*4);

// Image interpolation

HLocate(img_fil,2048l,nx*2);

p = (int*)HPosit(img_fil);

for (i = 0, k = 0; i < nx-1; i++, k += 2)

{ p1[k] = p[i]; p1[k+1] = (p[i]+p[i+1])/2;

}

p1[k] = p[i];

for (j = 0, jz = 0; j < ny-1; j++, jz += 2)

{ // Write 1 line

GetGWL(chl,(short*)pp,nx*2-1,jz);

for(i = 0; i < nx*2-1; i++)

if(fl_sub>) pp[i] = (pp[i]-2048 - p1[i])/2 + 2048;

pp[i] = (pp[i]-2048 + p1[i])/2 + 2048;

PutGWL(chl,(short*)pp,nx*2-1,jz);

//Read 2 line

HLocate(img_fil,(long)(j+1)*nx*2+2048l,nx*2);

p = (int*)HPosit(img_fil);

for (i = 0, k = 0; i < nx-1; i++, k += 2)

{ p2[k] = p[i]; p2[k+1] = (p[i]+p[i+1])/2;

}

p2[k] = p[i];

for (i = 0; i < nx*2-1; i++) p0[i] = (p1[i]+p2[i])/2;

// Write 2 line

GetGWL(chl,(short*)pp,nx*2-1,jz+1);

for(i = 0; i < nx*2-1; i++)

if(fl_sub>) pp[i] = (pp[i]-2048 - p1[i])/2 + 2048;

pp[i] = (pp[i]-2048 + p0[i])/2 + 2048;

PutGWL(chl,(short*)pp,nx*2-1,jz+1);

// Line2 to Line1

for (i = 0; i < nx*2-1; i++) p1[i] = p2[i];

}

GetGWL(chl,(short*)pp,nx*2-1,jz);

for(i = 0; i < nx*2-1; i++)

if(fl_sub>) pp[i] = (pp[i]-2048 - p1[i])/2 + 2048;

pp[i] = (pp[i]-2048 + p1[i])/2 + 2048;

PutGWL(chl,(short*)pp,nx*2-1,jz);

h_mfree(p1); h_mfree(p2); h_mfree(p0); h_mfree(pp);

}

HClose(img_fil);

ud = h_data(w);

ud->x0 = (ud->iw-ud->w)/2; // Центровка

ud->y0 = (ud->ih-ud->h)/2; // изображения

redraw_cw(w);

}

/***********************************************************/

void Do_Inversion(WinHandle w)

{ int i,k; int imin,imax;

Win2d *ud = h_data(w);

WinCon *udc;

DWIND *p = &ud->dw[0];

if(!ud->img_name || !ud->ch) return;

if (p->on) { if(p->neg) p->neg = 0; else p->neg = 1;

if(!ExistWindow(H3d_view))

{ udc = h_data(MainControl);

udc->inv_prn = p->neg;

}

}

SetupLUT(ud->dw);

redraw_cw(w);

}

/***********************************************************/

// Image filtration functions

static void inch(int *u,int *v)

{int temp;

temp=*u; *u=*v; *v=temp;

}

static int f9(int *mf)

{

int *max,i,j;

for(i = 0;i < 9; i++)

{max=&mf[i];

for(j = i+1;j < 9; j++) if(*max < mf[j]) max = &mf[j];

if(max != &mf[i]) inch(max,&mf[i]);

}

return(mf[4]);

}

static int f1(int *mf)

{long s;

s=(long)mf[0]+2*(long)mf[1]+(long)mf[2]+2*(long)mf[3]

+4*(long)mf[4]+2*(long)mf[5]+(long)mf[6]+2*(long)mf[7]+(long)mf[8];

return(s/16);

}

static int f2(int *mf)

{long s;

s=(long)mf[0]+(long)mf[1]+(long)mf[2]+(long)mf[3]

+(long)mf[5]+(long)mf[6]+(long)mf[7]+(long)mf[8];

return(s/8);

}

static int f3(int *mf)

{long r1,r2;

r1 = (long)mf[0]+(long)mf[1]+(long)mf[2]-(long)mf[6]-(long)mf[7]-(long)mf[8];

r1 = r1*r1;

r2 = (long)mf[0]+(long)mf[3]+(long)mf[6]-(long)mf[2]-(long)mf[5]-(long)mf[8];

r2 = r2*r2;

return((int)(2.0*sqrt((double)(r1+r2))));

}

static int f4(int *mf)

{return( mf[4]);

}

static int f5(int *mf)

{long s;

s=(-2*(long)mf[0]+(long)mf[1]-2*(long)mf[2]+(long)mf[3]

+6*(long)mf[4]+(long)mf[5]-2*(long)mf[6]+(long)mf[7]-2*(long)mf[8])/2;

return((int)s);

}

static int f6(int *mf)

{int e,s;

s = f1(mf); e = mf[4];

if((2*e - s) > 30) e = 2*e - s;

else e = s;

return(e);

}

static int f7(int *mf)

{long s;

s=-(long)mf[0]-(long)mf[1]-(long)mf[2]+(long)mf[3]

+3*(long)mf[4]-(long)mf[5]+(long)mf[6]+(long)mf[7]-(long)mf[8];

return((int)s);

}

static int f8(int *mf)

{long s;

s=((long)mf[0]+(long)mf[1]+(long)mf[2]+(long)mf[3])/4;

return((int)s);

}

static int f10(int *mf)

{return( mf[4]);

}

static void filt(int *p1,int *p2,int *p3,int *po,int str,int nfilt)

{

int mf[9],i,tr;

str=str-1; tr=str-1;

mf[0]=*(p1+str);mf[1]=*p1;mf[2]=*(p1+1);

mf[3]=*(p2+str);mf[4]=*p2;mf[5]=*(p2+1);

mf[6]=*(p3+str);mf[7]=*p3;mf[8]=*(p3+1);

switch (nfilt)

{ case 1: *po=f1(mf); break;

case 2: *po=f2(mf); break;

case 3: *po=f3(mf); break;

case 4: *po=f4(mf); break;

case 5: *po=f5(mf); break;

case 6: *po=f6(mf); break;

case 7: *po=f7(mf); break;

case 8: *po=f8(mf); break;

case 9: *po=f9(mf); break;

case 10: *po=f10(mf); break;

}

for(i = 0; i < tr; i++)

{mf[0] = *(p1+i); mf[1] = *(p1+i+1); mf[2] = *(p1+i+2);

mf[3] = *(p2+i); mf[4] = *(p2+i+1); mf[5] = *(p2+i+2);

mf[6] = *(p3+i); mf[7] = *(p3+i+1); mf[8] = *(p3+i+2);

switch (nfilt)

{ case 1: *(po+i+1) = f1(mf); break;

case 2: *(po+i+1) = f2(mf); break;

case 3: *(po+i+1) = f3(mf); break;

case 4: *(po+i+1) = f4(mf); break;

case 5: *(po+i+1) = f5(mf); break;

case 6: *(po+i+1) = f6(mf); break;

case 7: *(po+i+1) = f7(mf); break;

case 8: *(po+i+1) = f8(mf); break;

case 9: *(po+i+1) = f9(mf); break;

case 10: *(po+i+1) = f10(mf); break;

}

}

mf[0]=*(p1+tr);mf[1]=*(p1+str);mf[2]=*p1;

mf[3]=*(p2+tr);mf[4]=*(p2+str);mf[5]=*p2;

mf[6]=*(p3+tr);mf[7]=*(p3+str);mf[8]=*p3;

switch (nfilt)

{ case 1: *(po+str)=f1(mf); break;

case 2: *(po+str)=f2(mf); break;

case 3: *(po+str)=f3(mf); break;

case 4: *(po+str)=f4(mf); break;

case 5: *(po+str)=f5(mf); break;

case 6: *(po+str)=f6(mf); break;

case 7: *(po+str)=f7(mf); break;

case 8: *(po+str)=f8(mf); break;

case 9: *(po+str)=f9(mf); break;

case 10: *(po+str)=f10(mf); break;

}

}

void Do_Filters(WinHandle w, int nfilt)

{ GWHandle chl;

int i,k;

int *po,*p1,*p2,*p3,*p4,*p5,*pn,iw,ih;

double d1,d2;

Win2d *ud = h_data(w);

if ((chl = ud->ch) == 0) return;

iw=ud->iw; ih=ud->ih;

if(nfilt == 10)

{

po = (int*)h_malloc(iw*2); pn = (int*)h_malloc(iw*2);

p1 = (int*)h_malloc(iw*2); p2 = (int*)h_malloc(iw*2);

p3 = (int*)h_malloc(iw*2); p4 = (int*)h_malloc(iw*2);

p5 = (int*)h_malloc(iw*2);

i = 2;

GetGWL(chl,(short*)p1,iw,i-2);

for(k = 0; k < iw; k++) p1[k] = p1[k]-2048;

GetGWL(chl,(short*)p2,iw,i-1);

for(k = 0; k < iw; k++) p2[k] = p2[k]-2048;

GetGWL(chl,(short*)p3,iw,i);

for(k = 0; k < iw; k++) p3[k] = p3[k]-2048;

GetGWL(chl,(short*)p4,iw,i+1);

for(k = 0; k < iw; k++) p4[k] = p4[k]-2048;

for( i =2; i < ih-2; i++)

{

GetGWL(chl,(short*)p5,iw,i+2);

for(k = 0; k < iw; k++) p5[k] = p5[k]-2048;

for(k = 2; k < iw-2; k++)

{

d1 = p1[k-2] - p5[k+2]; d1 = d1*d1;

d2 = p5[k-2] - p1[k+2]; d2 = d2*d2;

po[k] = (int)sqrt(d1+d2)+2048;

}

for(k = 0; k < iw; k++) p1[k] = p2[k];

for(k = 0; k < iw; k++) p2[k] = p3[k];

for(k = 0; k < iw; k++) p3[k] = p4[k];

for(k = 0; k < iw; k++) p4[k] = p5[k];

PutGWL(chl,(short*)po,iw,i);

}

h_mfree(pn); h_mfree(po); h_mfree(p1); h_mfree(p2); h_mfree(p3);

h_mfree(p4); h_mfree(p5);

redraw_cw(w);

return;

}

if(nfilt == 4)

{

}

po = (int*)h_malloc(iw*2); pn = (int*)h_malloc(iw*2);

p1 = (int*)h_malloc(iw*2); p2 = (int*)h_malloc(iw*2);

p3 = (int*)h_malloc(iw*2);

i = 1;

GetGWL(chl,(short*)p1,iw,i-1);

for(k = 0; k < iw; k++) p1[k] = p1[k]-2048;

GetGWL(chl,(short*)p2,iw,i);

for(k = 0; k < iw; k++) p2[k] = p2[k]-2048;

for( i =1; i < ih-1; i++)

{

GetGWL(chl,(short*)p3,iw,i+1);

for(k = 0; k < iw; k++) p3[k] = p3[k]-2048;

filt(p1,p2,p3,po,iw,nfilt);

// memcpy(p1,p2,iw); memcpy(pn,p3,iw);

for(k = 0; k < iw; k++) p1[k] = p2[k];

for(k = 0; k < iw; k++) pn[k] = p3[k];

for(k = 0; k < iw; k++) po[k] = po[k]+2048;

PutGWL(chl,(short*)po,iw,i);

// memcpy(p2,pn,iw);

for(k = 0; k < iw; k++) p2[k] = pn[k];

}

h_mfree(pn); h_mfree(po); h_mfree(p1); h_mfree(p2); h_mfree(p3);

redraw_cw(w);

}

/***********************************************************/

void Do_Scale_Rotate(WinHandle w)

{ int i,k;

int nx,ny,ix,iy;

int *po;

int q1,q2,q3,q4;

double angle;

double hi,hi_t,x,y,u,v,si,co,dx,dy;

double cox = 65536.0;

long cx,cy,cx1,cy1,s1,s2;

long lx,ly,ldx,ldy,lix,liy;

unsigned char *pc,s,p;

IJ ij;

GWHandle ch,chol;

Win2d *ud = h_data(w);

if ((chol=ud->ch) == 0) return;

angle = 3.14159265*ud->angle/180.0;

hi = 1.0/ud->iw; hi_t = hi/ud->scale;

nx = ud->scale*ud->iw; ny = ud->scale*ud->ih;

si = sin(angle); co = cos(angle);

u = -hi_t*(nx/2.0); v = -hi_t*(ny/2.0 - 1);

dx = hi_t*co/hi; dy = hi_t*si/hi;

ldx= cox*dx; ldy = cox*dy;

po = (int*)h_malloc(nx*sizeof(int));

ch = NewGW(f_create("rout.tmp",F_CREATE_NORMAL),0);

for( i = 0; i < ny; i++)

{v+= hi_t;

lx = cox*( u*co - v*si + hi_t*(nx/2.0) )/hi;

ly = cox*( u*si + v*co + hi_t*(ny/2.0) )/hi;

for(k = 0; k < nx; k++)

{

ix = lx >> 16; lx+= ldx;

iy = ly >> 16; ly+= ldy;

liy = iy; liy = liy << 16;

cy = ly - liy;

cy1= 65537L - cy;

lix = ix; lix = lix << 16;

cx = lx - lix;

cx1= 65537L - cx;

ij.i = ix; ij.j = iy; GetGWA(chol, (short*)&q1, 1, &ij);

ij.i = ix+1; ij.j = iy; GetGWA(chol, (short*)&q2, 1, &ij);

ij.i = ix; ij.j = iy+1; GetGWA(chol, (short*)&q3, 1, &ij);

ij.i = ix+1; ij.j = iy+1; GetGWA(chol, (short*)&q4, 1, &ij);

s1 = ((long)q1*cx1+(long)q2*cx) >> 16;

s1 = (s1*cy1)>>16;

s2 = ((long)q3*cx1 + (long)q4*cx) >> 16;

s2 = (s2*cy)>>16;

po[k] = s1+s2;

}

PutGWL(ch, (short*)po, nx, i);

}

h_mfree(po);

if (chol) DisposeGW(chol);

ud = h_data(w);

ud->ch = ch;

ud->iw = nx; ud->ih = ny;

ud->x0 = (ud->iw-ud->w)/2; // Центровка

ud->y0 = (ud->ih-ud->h)/2; // изображения

redraw_window(w);

}

// зеркальное отображение

void Do_Mirrow(WinHandle w)

{ int i,j,vol;

int nx,ny;

int *po;

GWHandle ch;

Win2d *ud = h_data(w);

if ((ch=ud->ch) == 0) return;

nx = ud->iw; ny = ud->ih;

po = (int*)h_malloc(nx*sizeof(int));

for( i = 0; i < ny; i++)

{ GetGWL(ch, (short*)po, nx, i);

for(j=0;j<nx/2;j++)

{ vol = po[j]; po[j] = po[nx-j-1]; po[nx-j-1] = vol;

}

PutGWL(ch, (short*)po, nx, i);

}

h_mfree(po);

ud = h_data(w); ud->flef^=1;

redraw_cw(w);

}

static void Do_ResZo(WinHandle w, int nxi, int nyi, int reszo, int type)

{ int i,k;

int nx,ny,ix,iy,new_nx,new_ny,x0,y0;

int *po;

int q1,q2,q3,q4;

double x,y,dx,dy;

long cx,cy,cx1,cy1,s1,s2;

double sc_x,sc_y,cox = 65536.0;

long lx,ly,ldx,ldy,lix,liy;

unsigned char *pc,s,p;

IJ ij;

GWHandle ch,chol;

Rect r;

Rect wr = WorkRect(w);

Win2d *ud = h_data(w);

if ((chol=ud->ch) == 0) return;

if(reszo)

{ nx=nxi; ny=nyi;

new_nx = ud->iw; new_ny = ud->ih;

if(new_nx==nx && new_ny==ny) return;

}

else

{

r = type ? Set_Rect(w) : Set_Sqr(w);

if(r.x0 == -1) return;

new_nx = r.x1-r.x0+1; new_ny = r.y1-r.y0+1;

ud = h_data(w);

sc_x = (double)ud->iw/new_nx;

sc_y = (double)ud->ih/new_ny;

if( sc_x < sc_y)

{ nx = ud->iw; ny = new_ny*sc_x;

if(ny%2) ny--; ud->scale = sc_x;

}

else

{ ny = ud->ih; nx = new_nx*sc_y;

if(nx%2) nx--; ud->scale = sc_y;

}

}

OnScale(wr.x0,wr.y0);

dx = (double)new_nx/(double)nx;

dy = (double)new_ny/(double)ny;

ldx= cox*dx; ldy = cox*dy;

po = (int*)h_malloc(nx*sizeof(int));

if(reszo)

x0 = y0 = 0;

else

{ ud = h_data(w);

x0 = r.x0-wr.x0+ud->x0;

y0 = r.y0-wr.y0+ud->y0;

}

ch = NewGW(f_create("rout.tmp",F_CREATE_NORMAL),0);

ly = cox*y0;

for( i = 0; i < ny; i++)

{

lx = cox*x0;

ly+= ldy;

iy = ly>>16;

liy = iy; liy = liy << 16;

cy = ly - liy;

cy1= 65537L - cy;

for(k = 0; k < nx; k++)

{

lx+= ldx;

ix = lx>>16;

ij.i = ix; ij.j = iy; GetGWA(chol, (short*)&q1, 1, &ij);

ij.i = ix+1; ij.j = iy; GetGWA(chol, (short*)&q2, 1, &ij);

ij.i = ix; ij.j = iy+1; GetGWA(chol, (short*)&q3, 1, &ij);

ij.i = ix+1; ij.j = iy+1; GetGWA(chol, (short*)&q4, 1, &ij);

lix = ix; lix = lix << 16;

cx = lx - lix;

cx1= 65537L - cx;

s1 = ((long)q1*cx1+(long)q2*cx) >> 16;

s1 = (s1*cy1)>>16;

s2 = ((long)q3*cx1 + (long)q4*cx) >> 16;

s2 = (s2*cy)>>16;

po[k] = s1+s2;

}

PutGWL(ch, (short*)po, nx, i);

DoneVisSave((int)((i+1)*100.0/ny+0.5));

}

h_mfree(po);

if (chol) DisposeGW(chol);

ud = h_data(w);

ud->ch = ch;

ud->r0 = (double)ud->r0*(double)new_nx/ud->iw;

ud->iw = nx; ud->ih = ny;

ud->x0 = (ud->iw-ud->w)/2; // Центровка

ud->y0 = (ud->ih-ud->h)/2; // изображения

OffScale();

if(reszo)

redraw_window(w);

else

{ if (ud->size_big)

SetRectShape(w,&CommonRect);

else SetRectShape(w,&ud->own_size);

redraw_cw(w);

}

}

void Do_Zoom(WinHandle w, int type)

{

Do_ResZo(w,0,0,0,type);

}

void Do_Resemple(WinHandle w, int nx, int ny, int type)

{

Do_ResZo(w,nx,ny,1,type);

}

/***********************************************************/

typedef unsigned char BYTE;

typedef unsigned int WORD;

typedef unsigned long DWORD;

typedef struct tagBITMAPFILEHEADER

{ WORD bfType;

DWORD bfSize;

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;

} BITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER

{ DWORD biSize;

long biWidth;

long biHeight;

WORD biPlanes;

WORD biBitCount;

DWORD biCompression;

DWORD biSizeImage;

long biXPelsPerMeter;

long biYPelsPerMeter;

DWORD biClrUsed;

DWORD biClrImportant;

} BITMAPINFOHEADER;

void Fr_Save(WinHandle w, int select)

{ int i,k,x,y,x1,y1,nx,ny,format,ii,fin;

BYTE rr,gg,bb;

Rect r;

BYTE *filp,*pallet,*pal;

GCHandle ch;

Win2d *ud = h_data(w);

USGC *s;

BITMAPFILEHEADER *hfile;

BITMAPINFOHEADER *hinfo;

long hi;

Rect wr = WorkRect(w);

int L = wr.x1 - wr.x0 + 1;

int H = wr.y1 - wr.y0 + 1;

if(ud->r0<500 && ud->r0>10)

hi = 100.0/(0.2*(double)ud->r0/(double)(ud->iw-1));

else hi = 0l;

if(!ud->img_name || !ud->ch) return;

// BringToFront(w); VisSetWin(w); // ?????

format = 0;

if(select == 0)

{r = Set_Rect(w); if(r.x0 < 0) return;

redraw_window(w);

}

else if(select == 1)

{r.x0 = wr.x0; r.y0 = wr.y0; r.x1 = wr.x1; r.y1 = wr.y1;}

else if(select == 2)

{

if((ud->iw > L) || (ud->ih > H))

{r.x0 = wr.x0; r.y0 = wr.y0; r.x1 = wr.x1; r.y1 = wr.y1;}

else

{ r.x0 = wr.x0-ud->x0; r.y0 = wr.y0-ud->y0;

r.x1 = r.x0 + ud->iw-1; r.y1 = r.y0 + ud->ih-1;

}

}

else return;

nx = r.x1-r.x0+1; ny = r.y1-r.y0+1;

if(nx%4) { nx-=nx%4; r.x0++; }

if(ny%2) { ny--; r.y0++; }

i = InputForm(mesman,&format);

if (i != 1) return;

s = h_malloc(4096); if(!s) return;

if(format == 2) // BMP save

{

hfile =h_malloc(sizeof(BITMAPFILEHEADER));

hinfo =h_malloc(sizeof(BITMAPINFOHEADER));

// Select name and open BMP file

filp = GetFileName(GetCfgItem("bmp"),H_CREATE);

if (*filp == 0) {h_mfree(s); h_mfree(hfile); h_mfree(hinfo); return;}

if ((fin = f_create(filp, F_CREATE_NORMAL)) == -1)

{h_mfree(s); h_mfree(hfile); h_mfree(hinfo); return;}

// Save BITMAPFILEHEADER

hfile->bfType = 0x4D42; // BM - символы идентифицирующие формат

hfile->bfSize = 0l; // размер файла в long-ах

hfile->bfReserved1 = 0;

hfile->bfReserved2 = 0;

hfile->bfOffBits = sizeof(BITMAPFILEHEADER)+

sizeof(BITMAPINFOHEADER)+1024L;

// смещение начала собственно битового массива в байтах

f_write(fin, hfile, sizeof(BITMAPFILEHEADER));

// Save BITMAPIMFOHEADER

hinfo->biSize = (long)sizeof(BITMAPINFOHEADER);

hinfo->biWidth = (long)nx;

// кратно long-ам (если надо, добавить нули)

hinfo->biHeight = (long)ny;

hinfo->biPlanes = 1;

hinfo->biBitCount = 8;

hinfo->biCompression = 0L;

hinfo->biSizeImage = 0L;

hinfo->biXPelsPerMeter = hi;

hinfo->biYPelsPerMeter = hi;

hinfo->biClrUsed = 0L; // к-во цветов в таблице цветности

hinfo->biClrImportant = 0L; // обязательное к-во цветов

f_write(fin, hinfo, sizeof(BITMAPINFOHEADER));

// Save PALLETE

pallet = h_malloc(1024); pal = pallet;

for(ii=0; ii<256; ii++)

{ g_get_pal((USGC)ii,&rr,&gg,&bb);

*pal++ = rr*4; *pal++ = gg*4; *pal++ = bb*4; *pal++ = 0;

}

f_write(fin, pallet, 1024);

h_mfree(pallet);

// Save BITMAP

for(y=r.y1; y>=r.y0; y--)

{ for(x=r.x0,k=0; x<=r.x1; x++,k++)

{ s[k] = g_point(x, y, 0); g_point(x, y, s[k]);}

f_write(fin, s, nx);

}

f_close(fin); h_mfree(hfile); h_mfree(hinfo);

}

else if(format == 0) // IMG save

{

filp = GetFileName(GetCfgItem("frag"),H_CREATE);

if (*filp == 0) { h_mfree(s); return;}

if ((fin = f_create(filp, F_CREATE_NORMAL)) == -1) {h_mfree(s); return;}

f_write(fin, &nx, sizeof(int)); f_write(fin, &ny, sizeof(int));

for(y=r.y0; y<=r.y1; y++)

{ for(x=r.x0,k=0; x<=r.x1; x++,k++)

{ s[k] = g_point(x, y, 0); g_point(x, y, s[k]);

}

f_write(fin, s, nx);

}

f_close(fin);

ShowCursor(x,y,CURT_HAND);

}

else if(format == 1) // PCX save

{ if ((fin = f_create("frag.tmp", F_CREATE_NORMAL)) == -1)

{h_mfree(s); return;}

ch = NewGC(fin,0);

pallet = h_malloc(768);

for(y=r.y0,i = 0; y<=r.y1; y++,i++)

{ for(x=r.x0,k=0; x<=r.x1; x++,k++)

{ s[k] = g_point(x, y, 0); g_point(x, y, s[k]);}

PutGCL(ch, s, nx, i);

}

pal = pallet;

for(ii=0; ii<256; ii++)

{ g_get_pal((USGC)ii,&rr,&gg,&bb);

*pal++ = rr*4;

*pal++ = gg*4;

*pal++ = bb*4;

}

filp = GetFileName(GetCfgItem("pcx"),H_CREATE);

if (*filp)

cell_to_pcx(filp, ch, nx, ny, pallet);

h_mfree(pallet);

DisposeGC(ch); f_delete("frag.tmp");

}

h_mfree(s);

}

void PCX_Save(WinHandle w)

{ int i,k,x,y,x1,y1,nx,ny,ii,fin;

USGC rr,gg,bb;

Rect r;

USGC *filp,*pallet,*pal;

GCHandle ch;

Win2d *ud;

USGC *s,*s1,name[13],ss[81];

Rect wr = WorkRect(w);

ud = h_data(w); if(!ud->img_name || !ud->ch) return;

r.x0 = wr.x0; r.y0 = wr.y0; r.x1 = wr.x1; r.y1 = wr.y1;

nx = r.x1-r.x0+1; ny = r.y1-r.y0+1;

if(nx%2) { nx--; r.x0++; }

if(ny%2) { ny--; r.y0++; }

s = h_malloc(1024); if(!s) return;

// PCX save

if ((fin = f_create("frag.tmp", F_CREATE_NORMAL)) == -1)

{h_mfree(s); return;}

ch = NewGC(fin,0);

pallet = h_malloc(768);

for(y=r.y0,i = 0; y<=r.y1; y++,i++)

{ for(x=r.x0,k=0; x<=r.x1; x++,k++)

{ s[k] = g_point(x, y, 0); g_point(x, y, s[k]);}

PutGCL(ch, s, nx, i);

}

pal = pallet;

for(ii=0; ii<256; ii++)

{ g_get_pal((USGC)ii,&rr,&gg,&bb);

*pal++ = rr*4;

*pal++ = gg*4;

*pal++ = bb*4;

}

strcpy(ss,GetCfgItem("pcx"));

if(*ss != 0)

{ s1=strrchr(ss,'\\'); if(!s1) return ; else { s1++; *s1=0; }

}

ud = h_data(w);

sprintf(name,"%ld-%d.pcx",ud->no,ud->ns);

strcat(ss,name);

if (*ss) cell_to_pcx(ss, ch, nx, ny, pallet);

h_mfree(pallet);

DisposeGC(ch); f_delete("frag.tmp");

h_mfree(s);

}

void Fr_Load(WinHandle w)

{ GWHandle chl;

int i,k,x,y,x1,y1,nx,ny;

Rect r; EventRecord e;

char name[81],s[81],*s1;

int *pi;

unsigned char *c,*pc,*p,*pp;

int fin;

char *filp;

Win2d *ud = h_data(w);

filp = GetFileName(GetCfgItem("frag"),H_READ);

if (*filp == 0) return;

if ((fin = f_open(filp, F_OPEN_READ)) == -1) return;

f_read(fin, &nx, sizeof(int)); f_read(fin, &ny, sizeof(int));

get_ct_handle(w, ct);

get_ctsys();

ct->l[2] = nx; ct->l[3] = ny;

ct->b[249] = 1;

ud = h_data(w);

ud->iw = nx;

ud->ih = ny;

ud->ps = 1;

ud->frag = 1;

ud->objtype = 0;

// GW file name definition

strcpy(name,GetCfgItem("image"));

pc = name+strlen(name); while (pc > name && pc[-1] != '\\') pc--;

sprintf(pc,"w%d.tmp",ud->temp_name);

if (ud->ch) { DisposeGW(ud->ch); f_delete(name); }

ud->ch = NewGW(f_create(name,F_CREATE_NORMAL),0);

chl = ud->ch;

p = h_malloc(nx); pi = (int*)h_malloc(nx*2);

for( k = 0; k < ny; k++)

{f_read(fin, p, nx);

for (i = 0; i < nx; i++) pi[i] = (int)p[i]+2048;

PutGWL(chl,(short*)pi,nx,k); // Write to GW file

}

h_mfree(p); h_mfree(pi);

VisSetWin(w);

strcpy(s,filp);

ud = h_data(w);

if(!ud->img_old && ud->img_name)

{ int len = strlen(h_data(ud->img_name));

ud->img_old = h_alloc(len+1);

ud = h_data(w);

strcpy(h_data(ud->img_old),h_data(ud->img_name));

}

if(ud->img_name)

{ if (ud->tempimg) f_delete(h_data(ud->img_name)); h_free(ud->img_name);

}

else h_free(ud->win.title);

ud = h_data(w);

ud->img_name = h_alloc(strlen(s)+1);

ud = h_data(w);

strcpy(h_data(ud->img_name),s);

ud->tempimg = 0;

ud->win.title = ud->img_name;

PaintTitle(w);

ud->x0 = (ud->iw-ud->w)/2; // Центровка

ud->y0 = (ud->ih-ud->h)/2; // изображения

redraw_window(w);

}

Приложение 3

Описание программы обработки изображений Ctsoft