ComplexDiagnostic 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 |
БазаДанных | вызоввнешней программыдля работы смедицинскойбазой данных |
Сервис | вызов:
|
ЗагрКонф | загрузказаранее записаннойконфигурациипараметровпечати из файла |
Парам1 | вызовокна для измененияредко изменяемыхпараметровпечати |
Парам2 | вызовокна для изменениячасто меняемыхпараметровпечати |
ФАЙЛ/экр | изменениепараметрапечати: из файлаили с экрана |
ЗапКонф | записьтекущей конфигурациипараметровпечати в файл |
Какпечатать налазерном принтере.
Печать изображенийи текста заключенияна лазерномпринтереосуществляетсячерез окнаИзображенияи Текст. Поэтомуне рекомендуетсяиспользоватьокна Изображенияи Текст, вызванныев других конфигурациях,например в 3Dvolume, и удалятьлюбое из нихдо завершенияработ по получениютвердых копий.
Функция печатина лазерныйпринтер можетбыть вызванатолько в случае,если в окноИзображениязагруженоизображение.Печать изображенийпроизводитсясо следующимиприоритетами:если есть выделенныеизображения,то печатаютсятолько они;если выделениянет, начинаяс изображениязагруженногов окно Изображения,печатаетсялибо заданное(если задано)количествоизображений(параметр К-воизображений),либо все имеющиесяизображения(срезы) данногообъекта (пациента)в соответствиисо значенияминижеописанныхпараметровпечати, которыемогут бытьизменены спомощью элементовверхнего менюПарам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, |
В нижней частиокна Управлениенаходитсяподокно Печ_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), операции(OП),результата(РЕЗ), памяти(П);
·клавишнабора чисел;
·клавишопераций;
·клавишвычислительныхфункций;
·клавишвспомогательныхфункций;
·клавишработы с памятью;
·клавишзагрузки величин,измеренныхранее на изображении;
Все действияосуществляются"мышью" путемнаезда ее курсорана нужную клавишуи нажатия левойкнопки. Приэтом, если послеочередногонажатия кнопки"мыши" долженполучитьсярезультат, неотпуская кнопкуможно видетьв соответствующихполях оба операнда,операцию ирезультат.После отпусканиякнопки "мыши"результатперемещаетсяна место первогооперанда, аполе второгооперанда очищается.На место любогооперанда можнозагрузить однуиз величин,измеренныхранее на изображении.Так как каждаяиз этих величинможет иметьдо восьми значений,то после выборанужной величины(осуществляетсяподсветкаклавиш "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`-частота строчнойразвертки
·HDisplayed- количествопикселей встроке /8
·H SyncPosition- сдвиг изображенияпо горизонтали
·H SyncWidth- ширина строчногосинхроимпульса
·V Total-частота кадровойразвертки
·V Adjust-плавная настройкачастоты кадровойразвертки
·VDisplayed- количестволиний по вертикали
·V SyncPosition- сдвиг изображенияпо вертикали
·InterplaceMode- 3 - чересстрочнаяразвертка, 1 -прогрессивная
·Max Scan LineAddress- всегда 15
·Scan framesize: 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
Файл +АвтозаписьФормат ПечатьПоказ фраз.
При работе сострокой менюФайл выводитсяподменю дляработы с файлами:
Загрузитьтекст- загружаетв окно файл срасширением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 всоответствиис выбраннойработой. Процедурыархивированияи разархивированияпроизводятсянад изображениямиили архивами,находящимисяв соответствующихдиректориях.
Если выполнениеработы былозадано с параметром"выборочно",программаработает в"ручном" режиме.На экран выводитсядве строки: впервой (вверхуэкрана) отображаетсявид работы изначения параметровокна обрезки,а в дальнейшемотображаютсясообщенияпрограммы; вовторой (внизуэкрана) - менютипа Нортон.
Вначале оносодержитследующее:1Help2WorkC 3Min 4Max 5Choic...10Quit.
Оператор имеетвозможность:
·получитьподсказку - F1;
·изменитьвид работынажатием клавишиF2 или нажатиемкнопки мышипри наезде наполе "F2" илиполе с названиемвида работыв верхней строке;
·врежиме упаковкаи архивированиеизменить значенияминимума имаксимума окнаобрезки данных;то осуществляетсясоответственноклавишами F3,F4или нажатиемкнопки мышипри наезде наполя "F3","F4" илиполя со значениямиграниц и дальнейшимредактированиеми выходом поEnter в случае правильнойредакции илипо Esc в случаеотказа;
·выбратьфайлы, над которымибудет выполненазаданная работа,что осуществляетсянажатием клавишиF5 или нажатиемкнопки мышипри наезде наполе "F5";
·выйтииз программы-F10.
При выполненииоператоромфункции выборафайлов нижняястрока экранамодифицируетсяи выглядитследующимобразом:1Help 2Esc3Exec 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...4Set5Choic...10Quit.
Прервать выполнениеработы можноклавишей Esc. Поокончанииоператор имеетвозможность:
·получитьподсказку - F1;
·войтив режим установкивида работы(начало программы)- F4;
·войтив режим выборафайлов (осуществитьновый выбор)- F5;
·выйтииз программы-F10.
ГЛАВА2.
Какработать стрехмернымиобъектами.
Окна3D визуализации
окно 3Dpreview | обеспечиваетвизуализациюкаркаса объемногопредставленияв текущемположениидля трехмернойвизуализации,вывод аксиального,коронарногои сагиттальногосечений спроекциямисекущих плоскостейи ориентацииобъемногопредставления. |
окно 3Dview | предназначенодля выводатрехмерногоизображенияс возможностьюотображенияна нем аксиального,коронарного,сагиттальногои параксиальногосечений ипостроениевнешнего видаобъекта. |
окно 3Dmeasurе | обеспечиваетпроведениетрехмерныхизмеренийзначений объемногораспределенияи расстоянийв объеме дляокон 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
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-
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..3) IMG при печати
fl_5L= 0
;альтернативныйкод готовностипринтера
fonthead=0
; признаккрупного фонтадля печатизаголовка
corc= 0.1
;коррекцияцентра окнадля печати(c=c-corc*w)
prnport=0
;LPT 0 - 22-отсутствиепринтера
format= 0
;0 текстне форматируется
;1 текстформатируется
fbnum= 6
pr_arch=0
; параметрвыбора работыс протоколомархивирования
;отсутствие, 0 или не (1,2,3) - непросматриватьи не печатать
; 1 -просмотр (протоколвводится в окно"text")
; 2 -печать с запросомподтверждения
; 3 -печать беззапроса подтверждения
Темоймоего дипломногопроекта былопередача информациииз ультразвуковоймедицинскойдиагностическойустановки вперсональныйкомпьютер.
Данныйдипломныйпроект выполнялсяв рамках программы«телемедицина»на базеинститутахирургии им.А. В. Вишневского.
Насегодняшнийдень от 60 до 80%медицинскойдиагностическойинформациихранится в видеизображений.В связи с этимнаиболее актуальностоит вопроспередачи информациииз медицинскогодиагностическогооборудованияв персональныйкомпьютер длядальнейшегоанализа, обработки,хранения ипередачи посовременнымлиниям связи.
Получение,обработка ианализ информациииз ультразвуковоймедицинскойдиагностическойустановкисвязано сопределеннымитрудностями,которые можноразделить натри группы:
Проблемаполучениядиагностическиадекватногоизображениядля дальнейшейдиагностики,анализа и хранения;
Проблемасопряжениядиагностическогооборудованияс системамипередачи информации;
Проблемапередачи полученнойинформациик «удаленным»пользователя.
Для решенияданных проблемразработанаследующая схемапередачи данныхиз ультразвуковоймедицинскойдиагностическойустановки вперсональныйкомпьютер.(плакат 1)
Я осуществлялподключениеультразвуковойдиагностическойустановки ALOCASSD 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,в отделенииультразвуковойдиагностикиинститутахирургии им.А. В. Вишневского;
Полученоизображение,захваченноеиз данной установки;
Осуществленасвязь с удаленнымипользователямив реальномвремени;
Проведенаэкспертнаяоценка даннойсистемы, котораяподтвердилаеё эффективность.
Данную системуможно внедрятьв рамках проекта«телемедицина»,для развитиямедицинскихтелеконференцияи телеконсультаций.
Отзывруководителя
На дипломныйпроект «Передачаинформациииз ультразвуковоймедицинскойдиагностическойустановки ALOCASSD – 650», выполненныйстудентом –дипломникомМаксимовымДмитриемВячеславовичем.
На дипломномпроектированииперед Д.В. Максимовымбыла поставленазадача – разработатьсистему передачиинформациииз ультразвуковоймедицинскойдиагностическойустановки наперсональныйкомпьютер сдальнейшейобработкойполучаемойинформации.
В процессеработы дипломантпоказал хорошеепониманиепоставленнойзадачи, умениесамостоятельноразыскать иразобратьсяв литературе,умение грамотноиспользоватьсовременныесредствапрограммирования.Исследованныеи реализованныев проекте принципыбудут использованыв дальнейшейразработкематематическогообеспечениямедицинскогоназначения.
Д.В. Максимовс заданиемсправилсяполностью. Надпроектом работалсамостоятельно,организованнои ритмично.
Считаю,что дипломныйпроект заслуживаетоценки ОТЛИЧНО,а
Д.В. Максимов– присвоенияквалификации«инженер –физик».
Руководитель,
Зав. лабораториейкибернетикиИнститутахирургии им.А.В. ВишневскогоРАМН
кандидат физ– мат наук
Е.Н. Тимин
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГООБРАЗОВАНИЯ РФ
МОСКОВСКИЙОРДЕНА ТРУДОВОГОКРАСНОГО ЗНАМЕНИ
ИНЖЕНЕРНО- ФИЗИЧЕСКИЙИНСТИТУТ
(техническийуниверситет)
ВЕЧЕРНИЙФАКУЛЬТЕТ
кдипломномупроекту на тему:
«Передачаинформациии ультразвуковоймедицинскойдиагностическойустановки ALOKASSD – 650»
Студент– дипломник: Д.В. Максимов.
Руководительпроекта: зав.лаб. кибернетики,канд. физ. - мат.наук
Е. Н. Тимин.
Консультант:зав. лаб. РНЦ«Курчатовскийинститут»,канд. физ. – мат.наук
А. В.Пестряков
Рецензенты:директор ООО«КДС» канд.физ. - мат. наук,лауреат Гос.премии СССР
В.А. Нестеров.
Ген.Директор ООО«ЦВС (DiViSy)»канд.физ. - мат. наук
В.А. Казинов.
Зав.кафедрой 25: докторфиз. - мат. наук,профессор Ю.А. Быковский.
Москва-1999 г.
Аннотация
Дипломныйпроект посвященразработкесистемы передачиданных изультразвуковоймедицинскойдиагностическойустановки, атакже получениемдиагностическиадекватногоизображениядля дальнейшейдиагностики,анализа и хранения.Обработкаполученныхизображенийбазируетсяна программномкомплексеCTsoft.
Системапредназначенадля работы вотделенияхультразвуковойдиагностикии не требуетот пользователядополнительныхзнаний попрограммированиюи техническомуобслуживаниюперсональныхкомпьютеров.Она предоставляетпользователюудобный экранныйинтерфейс дляполучения иобработкивысококачественныхизображений,переданныхиз ультразвуковоймедицинскойдиагностическойустановки,кроме того, онапредусматриваетвозможностьдальнейшейпередачи полученныхданных покомпьютернойсети.
Системапрошла опытнуюэксплуатациюв институтехирургии имА. В. Вишневскогов рамках проекта«телемедицина».Отчетные материалык дипломномупроекту включаютпояснительнуюзаписку, 3приложенияи графическийматериал.
Введение4
Обзорлитературы7
Разработкителемедициныв мире7
Необходимость“телемедицины”в России9
Задачиздравоохранения,решаемые сприменениемтелемедицинскихтехнологий12
Станцииглобальнойсвязи14
Локальныйсервер клиники14
Локальныерабочие станции14
Формыприменениятелемедицинскихтехнологийдля решениязадач здравоохранения15
Приложениятелемедициныв клиническойпрактике16
Требованияк передачетелемединформации17
Анализвозможностипередачи медицинскихданных существующимипрограммно– аппаратнымисредствами20
ПодключениеультразвуковоймедицинскойдиагностическойустановкиALOKA SSD - 65023
Ультразвуковаядиагностическаяустановка
ALOKA SSD – 65025
Общиехарактеристикиустройства25
Принциппостроениявыходногосигнала27
УстройствосогласованияУЗИ с персональнымкомпьютеромпервичнойобработкиданных29
ОсновныехарактеристикиHI*DEF Plus LF31
Форматфайла получаемогоизображения32
Персональныйкомпьютерпервичнойобработки35
Локальнаявычислительнаясеть38
Особенностипостроениякомпьютернойсети для институтахирургии им.А. В. Вишневского38
Программноеобеспечениеи сетевоеоборудование43
Персональныйкомпьютерконсультанта45
Использованиефильтров46
Фильтрсглаживания48
Фильтрусредненногосглаживания49
Фильтрподчеркиванияконтуров50
Фильтробработкиполутонов51
Последовательноеиспользованиефильтров52
Заключение54
Выводыи результаты:55
Списоклитературы56
Приложение158
Форматинформационногополя файлаизображения58
Приложение262
Модульформированияфильтров изображений(С++)62
Приложение394
ОписаниепрограммыобработкиизображенийCtsoft94
Несмотряна сложностьэкономическойситуации, встране быстронарастает парксовременноймедицинскойаппаратуры:ультразвуковыеаппараты,компьютерныетомографы,биохимическиеанализаторыи т.д. Однако,в силу неполногоиспользованиясовременныхмедицинскихзнаний, новыеметодики внедряютсяна местах крайненеэффективно.Как показываетопыт, уровеньдиагностикии лечения вцентральныхклиниках (а онисосредоточеныглавным образомв Москве) значительнопревосходитуровень практическогоздравоохраненияв стране, дажепри том, чторазница в уровнеоснащения невелика. Приэтом в медицинеобъем знанийудваиваетсяв 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,но которыевсеобщегораспространенияне получили.Исходя из всеговыше сказанного,можно заключить,что каждаямедицинскаядиагностическаяустановкатребует индивидуальногоподхода дляобеспечениявозможностипередачи информации.
Также существуетряд проблемвозникающихпри попыткахобеспечениявысокого качествапередаваемоймедицинскойинформации,связанных стем, что современныепрограммно– аппаратныесредства неспециализированыдля передачиданных подобногорода. Это накладываетопределенныетребованияк подборуоборудованиядля передачиинформациииз медицинскойдиагностическойаппаратурына персональныеЭВМ. Специализированных(стандартных)программныхсредств, предназначенныхдля обработкимедицинскойинформации(изображений)на персональныхЭВМ на данныймомент практическине существует.Использованиепрограмм общегоназначения,для работы смедицинскимиданными, практическиневозможно.Это связанос тем, что требуетсявысокий уровеньспециальнойподготовкиспециалистов– врачей, итребования,предъявляемыек персональнымЭВМ, для установкипрограмм такогокласса, неоправданновысоки, чтопрактическиневозможноиз-за неоправданновысоких материальныхи временныхзатрат.
Третья проблемасвязана сограничениями,накладываемымина передаваемуюинформацию,современнымисредствамисвязи. Медицинскиеданные (изображения,звук, видео)невозможнопередаватьв «реальномвремени» посовременнымканалам связи,с тем качеством,которое требуетсядля удовлетворительнойработы специалиста.Объемы информациитребуют разработкиспециальныхалгоритмовсжатия данныхи выработкиновых методикпередачи информации.
Предлагаемыеметоды решениявышеперечисленныхпроблем описаныв настоящемдипломномпроекте на базеподключениядля передачиданных ультразвуковойдиагностическойустановки ALOKASSD – 650 к персональномукомпьютерус последующейпередачейданных покомпьютернойсети.
В связи с тем,что для осуществленияудаленныхконсультацийнеобходимокачественнаяпередача данныхот медицинскихустановок кспециалистам,к оборудованиюзахвата, передачии отображенияинформациипредъявляютсяопределенныетребования,которые будутрассмотреныниже. Общаясхема передачиизображенияот ультразвуковойдиагностическойустановки кврачу – консультантупредставленана рис 1.
рис. 1Общая схемапередачи изображенияот УЗИ к врачу- консультанту.
Исходяиз схемы, можновыделить основныерабочие блоки:
Ультразвуковаядиагностическаяустановка.
Устройствосогласованияультразвуковойдиагностическойустановки сперсональныйкомпьютеромпервичнойобработкиданных.
Персональныйкомпьютер дляпервичнойобработкиполученногоизображения.
Устройствапередачи данныхпо компьютернойсети.
Персональныйкомпьютерконечногопользователя(консультанта).
Основнымипредпосылкамидля созданияданной схемыпослужило то,что захватизображенияс медицинскихустановок (вданном дипломе– ультразвуковаядиагностическаяустановка (вдальнейшемУЗИ)), осуществляетсячерез frame grabberHI*DEF Plus LF фирмы IMAGRAPH.Который установленв компьютерепервичногопользователяподсоединенк видеовыходуУЗИ. Первичныйпользователь,осуществляющийуправлениеУЗИ, обеспечиваетзахват изображенияс УЗИ и передачуего на персональныйкомпьютер.Далее с персональногокомпьютерапервичногопользователяосуществляетсяпередача изображенияпо сети до конечногопользователя.В случае необходимости,через сетьможет бытьорганизованателеконференциямежду первичными конечнымпользователями.Предусматриваетсятакже передачаизображенияв базу данныхлокальной сетипервичногопользователяс последующейдальнейшейпересылкойв базу данныхсети конечногопользователя,если осуществляетсяконсультацияспециалистовв различныхмедицинскихучреждениях.Или в общуюбазу данныхлокальной сетиодного медицинскогоучреждения,в том случае,когда первичныйи конечныйпользовательработают врамках одногомедицинскогоучреждения.
Далее будутрассмотреныотдельные блокиданной схемы.
В данномдипломномпроекте передачаизображенияосуществляласьс ультразвуковойдиагностическойустановки ALOKASSD – 650, имеющейследующиехарактеристики:
Общиесведения: | |
Методсканирования: |
|
Режимотображения: |
|
Регулировкачувствительности: | |
Усиление(GAIN): | Макс.90 дБ, регулируетсянепрерывно |
Временнаякомпенсациячувствительности(STC): | 11 – точечныескользящиерегуляторы. |
Контраст: | 7 переключаемыхстепеней,независимыхдля режимовВ и М. |
Градациисерого: | 64 уровня. |
Емкостьпамяти изображения: | 512 х 512 х6 бит. |
Обработкаизображения: | |
АРУ(AGC): | РежимыВ и М, непрерывнаярегулировка. |
(FTC): | Вкл./Выкл.для режимаМ. |
Усилениекрая (EdgeEnhance): | 3– шаговоепереключение. |
Последующаяобработка (Post– Processing) | 5видоввыбираемыхкривых |
Направлениеизображения: | Возможноизменение впоперечноми продольномнаправлениях(только режимВ) |
Знаковоеотображение: | Сиспользованиемвсей буквенно– цифровойклавиатуры. |
Режимыавтоматическогоотображения: | Датаи время, данныезонда (основнаячастота), установкаусиления,диапазонотображения,фокальныеобласти, данныеизмерения ирасчета и пр.,сегмент шкалысерого, меткишкалы. |
Другиережимы отображения: | Меткатела (16 картин),направлениепункции, курсоррежима М. |
Функцииизмерения: | Расстояние,площадь, окружность,объем, скорость,временнойинтервал,размеры. |
Функциирасчета: | Анализлевожелудочковойфункции, акушерскиерасчеты (возрастплода, оценкавеса плода),доплеровскийанализ, отношение,процентныйстеноз, гистограмма. |
Просмотровыймонитор: | 9 дюймовпо диагонали. |
Питание: | 115/120/220/240B10%;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сигналов,или захватсигналов«укороченных»форматов;
Стандартнаясинхронизация;
Возможностьподстройкияркости иконтрастности.
Одним извозможныхвариантов,является framegrabber, описанныйниже.
Устройствосогласованияперсональногокомпьютерас УЗИ представляетсобой framegrabber HI*DEF Plus LF фирмыIMAGRAPH. Оносуществляетзахват видеоизображениясо стандартноговидеовыходаУЗИ. Оцифрованиеполученногосигнала ипреобразованиев стандартныйцифровой видеосигнал форматаMPEG3или сохранениякадра в видекартинки, форматовBMP, JPEG, TIF, PCX или,если захваткартинки осуществляетпрограммадиагностики,то в специализированномформате.
HI*DEF Plus LF фиксируетизображенияиз любого аналоговогоисточникавидеосигналас высокой точностьюи качеством,предоставляетдиагностически- качественныеизображениядля программыкоррекцииизображения.Некоторые изэтих программвключают медицинскоеотображениетипа Teleradiology и PACS, атакже сбораданных изкомпьютерныхрабочих станцийс высокимразрешением.Самое высокоекачество изображениягарантируютрежимы HI*DEF: 0.5ns pixel jitter, 50 dB – отношениесигнала к шуму,минимальнаянелинейность,и авто - стабилизациятемпературы.
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 |
Изображения,переданныев персональныйкомпьютер,сохраняютсяв определенномспециализированномформате. Этотформат подразумеваетсохранениев файле изображениядополнительнойинформациио пациенте,исследовании,физическихпараметрахизображенияи т. п.. Структурнаясхема данногоформата представленана рис. 2.
рис. 2 Форматфайла изображения.
Два килобайтав данном файлевыделяютсяпод информационноеполе. В этомполе содержится:
Идентификацияпациента;
Режимы, вкоторых былополученоизображение;
Размерматрицы изображенияNx,Ny;
Дата исследования;
Разрешениеизображения(бит/пиксель);
Индивидуальныйномер изображения;
Специализированнаяинформация.
(Полнаяинформацияо содержанииинформационногополя представленав приложении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 Гбайта,поддерживающийстандарт UltraSCSI2. Для обеспечениянадежностипередачи исохранностиинформациик персональномукомпьютерудолжен бытьподключенисточникбесперебойногопитания. Длявысокоскоростнойпередачи данныхпо сети, в персональномкомпьютередолжна бытьустановленасетевая картасо скоростьюпередачи неменее 10 Мбит/сек.Для обеспечениятелеконференциив компьютередолжен бытьустановленframe grabber с поддержкойформата сжатиявидео сигналаMJPEG и встроеннымзвуком. Дляобеспечениявозможностиархивацииданных в нештатныхситуациях вПК должно бытьпредусмотреноподключениеZIP драйвера,для сохраненияинформациина магнитномленточномносителе. Исходяиз всего вышесказанного,приблизительнаяконфигурацияПК первичнойобработкиинформациипредставленав таблице 1.
Дляобеспеченияработы ПК нанем устанавливаетсяоперационнаясистема WindowsNTWorkstation. А так жепрограммноеобеспечениеуправлениявидеоконференциями(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 Мбит/сек.Оптимальнымрешением являетсясеть FastEthernet(10/100Base-TX)/GigabitEthernet (1000Base-SX).На уровнесегментаобеспечиваетсяскорость передачи100 Мбит/сек,на уровне здания1000 Мбит/сек.
Данная сетьхарактеризуетсяследующимипараметрами:
Топологиясети – “звезда”;
Архитектурасети: “Клиент - Сервер/Файл– Сервер”;
Основнойсетевой протоколTCP/IP;
Физическаясреда передачи– кабель наоснове неэкранированнойвитой пары(UTP5 категории) имногомодовыйоптоволоконныйкабель.
Коммутаторыс высокоскоростнойшиной и разделяемойпамятью.
Возможностьобъединениясетей FastEhernet и ATM
1. Программноеобеспечениедля управленияи работы с серверамии рабочимистанциями:
СетеваяОС - WindowsNT Server 4.0
КлиентскаяОС - WindowsNT Workstation 4.0
СерверБД - MSSQL Server 7.0
Почтовыйсервер - MSExhange Server 5.5
В качествепрограммногообеспечениядля работы сбазами данныхи сетью можноиспользоватьпакет MSBack Office - 4.0 (Включаетв себяNT Server, SQL Server 7.0 Exhange Server 5.5, SMS 2.0, IIS, SNAServer)
2. Программноеобеспечениедля управлениясетью.
MS SMS 2.0 -Мониторингсети и рабочихстанций, управлениерабочими станциями,установка ПОпо сети
Программноеобеспечениефирмы 3Сom- Transcend Network Control Services(включаетсл. продуктыTranscend Enterprise Manager и Transcend Workgroup Manager),Traffix Manager - позволяютуправлятьсетевымиустройствами,анализироватьтрафик и статистикуприложений,управлятьработой сети(реализуетсяредствамипротоколаRMON/RMON2). Все программноеобеспечениеработает под управлениемWindowsNT Server, TranscendNetwork Control так же работаетпод управлениемSun Solstice Domain Manager.
Сетевоеоборудованиефирмы 3Com:Коммутаторысерии:SuperStack II 3300 дляEhernet 10/100 Base-TX(витаяпара 5 категории,разъем RJ45), SuperStack II 9000/9300 для Ehernet 100/100Base-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.
рис. 10Smooth - Mean - Shading.
Реформасистемы здравоохраненияобеспечиларывок в развитиидиагностическихслужб региональныхклиник, ноодновременнои привела кутере ряданесомненныхдостиженийсоветскогоздравоохранения.В частностипрактическиполностьюразрушенацелостностьсистемы, в результатечего жителирегионов нев состоянииполучитьвысококвалифицированнуюпомощь, котораяосталасьсосредоточеннойв центральныхмосковскихклиниках. Развитиепроекта «Телемедицина»направленона сохранениеи усилениеположительныхаспектов реформи на нивелированиевозникшихнегативныхпоследствий.
Объединениеклиник страныв медицинскуюинформационнуюсеть позволиторганизоватьвзаимодействиеопытных специалистовцентра с начинающимидокторамирегионов. Работав этом направленииуже начата,однако до сихпор внутригоспитальныесети, позволяющиеобмениватьсяинформациейо больном, находятсяна уровне научныхразработок.До сих пор несуществуетединый стандартформированияпакета медицинскойинформации,включая изображения(рентген, УЗИ,КТ ит.п.). Толькоединичныеклиники работаютнад построениемсетей, собирающихинформацию.
Дипломнаяработа посвященарешению задачиподключенияк сети ультразвуковогомедицинскогодиагностическогоаппарата ALOKASSD - 650, на выходекоторого появляетсяизображение(УЗИ). Главнойзадачей работыбыла передачаизображениячерез локальнуюсеть в другуючасть института.Были разработаныи реализованыалгоритмыпредварительнойобработкиизображений.На момент началаисследованияв Институтехирургии им.А. В. Вишневскогобыла начатаработа по прокладкеоптоволоконногокабеля междудвумя зданиями:главным корпусом(в которомрасположеныдиагностическиеслужбы) и лаб.Кибернетики(в которойрасположенывычислительныемощности ивнешние коммуникации).На сегодняшнийдень фрагментсети, обеспечивающийпередачу изображений,построен, испытани реальнофункционирует.
В результатепроведенногоисследованияполучены следующиевыводы и результаты.
Построенасистема передачиизображенияиз ультразвуковойдиагностическойустановки вПК с последующейпередачей покомпьютернойсети;
Полученныеи переданныеизображениябыли оцененымедицинскимиэкспертамикак адекватные;
Установлено,что пропускнаяспособностькоммуникационногоканала на удаленныхмоделях связидолжна бытьне менее
64 кб/с;
Установлено,что разрешающаяспособностьпри регистрацииизображениядолжна составлятьне менее 768 * 586, приотображениисерого клинаразрешениедолжно составлятьне менее 10 бит.
A CASE OF GASTROSCHISIS, Dr. German Quevedo P, SantaCruz de la Sierra, Bolivia, June 1 st, 1997.
ELEMENTS OF SUCCESS IN TELEMEDICINEPROJECTS, Mary Moor, Ph.D., October, 1996.
EUROPEAN COMMITTE FOR STANDARDIZATION.
Implementing a Telemedicine Programm Across theMexican-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.
Позиция | Название | Значение | Описание |
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 | sh2s | 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 | Типсистемы |
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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"
#definePOROG (GRAY_BASE+GRAY_LVLS*4/5)
externint ExistWindow(WinHandle w);
externWinHandle MainControl;
externWinHandle H3d_view;
externvoid InvRect(int x0, int y0, int x1, int y1, WinHandle w, char *s);
externvoid redraw_window(WinHandle w);
externvoid redraw_cw(WinHandle w);
externvoid SetupLUT(DWIND *winds);
externvoid Screen_Save(void);
externRect correct_rect(Rect r);
externRect Set_Rect(WinHandle w);
externRect Set_Sqr(WinHandle w);
externvoid cell_to_pcx(char *pcx_name, GCHandle ch,
int xmax, intymax, char *pallet);
/***********************************************************/
voidDo_AddSub_Img(WinHandle w, int fl_sub)
{GWHandle chl;
HFILEimg_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;
unsignedchar *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
{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 p= pq; } GetGWL(chl,(short*)pp,nx,j); for(i= 0; 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 {p1[k] = p[i]; p1[k+1] = (p[i]+p[i+1])/2; } p1[k]= p[i]; for(j = 0, jz = 0; j {// Write 1 line GetGWL(chl,(short*)pp,nx*2-1,jz); for(i= 0; 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); //Read2 line HLocate(img_fil,(long)(j+1)*nx*2+2048l,nx*2); p= (int*)HPosit(img_fil); for(i = 0, k = 0; i {p2[k] = p[i]; p2[k+1] = (p[i]+p[i+1])/2; } p2[k]= p[i]; for(i = 0; i //Write 2 line GetGWL(chl,(short*)pp,nx*2-1,jz+1); for(i= 0; 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 } GetGWL(chl,(short*)pp,nx*2-1,jz); for(i= 0; 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); } /***********************************************************/ voidDo_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 staticvoid inch(int *u,int *v) {inttemp; temp=*u;*u=*v; *v=temp; } staticint f9(int *mf) { int*max,i,j; for(i= 0;i {max=&mf[i]; for(j= i+1;j if(max!= &mf[i]) inch(max,&mf[i]); } return(mf[4]); } staticint f1(int *mf) {longs; 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); } staticint f2(int *mf) {longs; 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); } staticint f3(int *mf) {longr1,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)))); } staticint f4(int *mf) {return(mf[4]); } staticint f5(int *mf) {longs; 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); } staticint f6(int *mf) {inte,s; s= f1(mf); e = mf[4]; if((2*e- s) > 30) e = 2*e - s; else e = s; return(e); } staticint f7(int *mf) {longs; 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); } staticint f8(int *mf) {longs; s=((long)mf[0]+(long)mf[1]+(long)mf[2]+(long)mf[3])/4; return((int)s); } staticint f10(int *mf) {return(mf[4]); } staticvoid filt(int *p1,int *p2,int *p3,int *po,int str,int nfilt) { intmf[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; case2: *po=f2(mf); break; case3: *po=f3(mf); break; case4: *po=f4(mf); break; case5: *po=f5(mf); break; case6: *po=f6(mf); break; case7: *po=f7(mf); break; case8: *po=f8(mf); break; case9: *po=f9(mf); break; case10: *po=f10(mf); break; } for(i= 0; 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; case2: *(po+i+1) = f2(mf); break; case3: *(po+i+1) = f3(mf); break; case4: *(po+i+1) = f4(mf); break; case5: *(po+i+1) = f5(mf); break; case6: *(po+i+1) = f6(mf); break; case7: *(po+i+1) = f7(mf); break; case8: *(po+i+1) = f8(mf); break; case9: *(po+i+1) = f9(mf); break; case10: *(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; case2: *(po+str)=f2(mf); break; case3: *(po+str)=f3(mf); break; case4: *(po+str)=f4(mf); break; case5: *(po+str)=f5(mf); break; case6: *(po+str)=f6(mf); break; case7: *(po+str)=f7(mf); break; case8: *(po+str)=f8(mf); break; case9: *(po+str)=f9(mf); break; case10: *(po+str)=f10(mf); break; } } voidDo_Filters(WinHandle w, int nfilt) {GWHandle chl; inti,k; int*po,*p1,*p2,*p3,*p4,*p5,*pn,iw,ih; doubled1,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 GetGWL(chl,(short*)p2,iw,i-1); for(k= 0; k GetGWL(chl,(short*)p3,iw,i); for(k= 0; k GetGWL(chl,(short*)p4,iw,i+1); for(k= 0; k for(i =2; i { GetGWL(chl,(short*)p5,iw,i+2); for(k= 0; k for(k= 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 for(k= 0; k for(k= 0; k for(k= 0; 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 GetGWL(chl,(short*)p2,iw,i); for(k= 0; k for(i =1; i { GetGWL(chl,(short*)p3,iw,i+1); for(k= 0; k filt(p1,p2,p3,po,iw,nfilt); // memcpy(p1,p2,iw); memcpy(pn,p3,iw); for(k= 0; k for(k= 0; k for(k= 0; k PutGWL(chl,(short*)po,iw,i); // memcpy(p2,pn,iw); for(k= 0; k } h_mfree(pn);h_mfree(po); h_mfree(p1); h_mfree(p2); h_mfree(p3); redraw_cw(w); } /***********************************************************/ voidDo_Scale_Rotate(WinHandle w) {int i,k; intnx,ny,ix,iy; int*po; intq1,q2,q3,q4; doubleangle; doublehi,hi_t,x,y,u,v,si,co,dx,dy; doublecox = 65536.0; longcx,cy,cx1,cy1,s1,s2; longlx,ly,ldx,ldy,lix,liy; unsignedchar *pc,s,p; IJij; GWHandlech,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 {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 { ix= lx >> 16; lx+= ldx; iy= ly >> 16; ly+= ldy; liy= iy; liy = liy cy= ly - liy; cy1=65537L - cy; lix= ix; lix = lix 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); } //зеркальноеотображение voidDo_Mirrow(WinHandle w) {int i,j,vol; intnx,ny; int*po; GWHandlech; 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 { GetGWL(ch, (short*)po, nx, i); for(j=0;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); } staticvoid Do_ResZo(WinHandle w, int nxi, int nyi, int reszo, int type) {int i,k; intnx,ny,ix,iy,new_nx,new_ny,x0,y0; int*po; intq1,q2,q3,q4; doublex,y,dx,dy; longcx,cy,cx1,cy1,s1,s2; doublesc_x,sc_y,cox = 65536.0; longlx,ly,ldx,ldy,lix,liy; unsignedchar *pc,s,p; IJij; GWHandlech,chol; Rectr; Rectwr = 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 {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 { lx= cox*x0; ly+=ldy; iy= ly>>16; liy= iy; liy = liy cy= ly - liy; cy1=65537L - cy; for(k= 0; 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 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); } } voidDo_Zoom(WinHandle w, int type) { Do_ResZo(w,0,0,0,type); } voidDo_Resemple(WinHandle w, int nx, int ny, int type) { Do_ResZo(w,nx,ny,1,type); } /***********************************************************/ typedefunsigned char BYTE; typedefunsigned int WORD; typedefunsigned long DWORD; typedefstruct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; }BITMAPFILEHEADER; typedefstruct tagBITMAPINFOHEADER { DWORD biSize; long biWidth; long biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; long biXPelsPerMeter; long biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; }BITMAPINFOHEADER; voidFr_Save(WinHandle w, int select) {int i,k,x,y,x1,y1,nx,ny,format,ii,fin; BYTErr,gg,bb; Rectr; BYTE*filp,*pallet,*pal; GCHandle ch; Win2d*ud = h_data(w); USGC*s; BITMAPFILEHEADER*hfile; BITMAPINFOHEADER*hinfo; longhi; Rectwr = WorkRect(w); intL = wr.x1 - wr.x0 + 1; intH = wr.y1 - wr.y0 + 1; if(ud->r0r0>10) hi= 100.0/(0.2*(double)ud->r0/(double)(ud->iw-1)); elsehi = 0l; if(!ud->img_name|| !ud->ch) return; // BringToFront(w); VisSetWin(w); // ????? format= 0; if(select== 0) {r= Set_Rect(w); if(r.x0 redraw_window(w); } elseif(select == 1) {r.x0= wr.x0; r.y0 = wr.y0; r.x1 = wr.x1; r.y1 = wr.y1;} elseif(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; } } elsereturn; 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 {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 {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); } elseif(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 {for(x=r.x0,k=0; x {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); } elseif(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 {for(x=r.x0,k=0; x {s[k] = g_point(x, y, 0); g_point(x, y, s[k]);} PutGCL(ch, s, nx,i); } pal= pallet; for(ii=0;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); } voidPCX_Save(WinHandle w) {int i,k,x,y,x1,y1,nx,ny,ii,fin; USGCrr,gg,bb; Rectr; USGC*filp,*pallet,*pal; GCHandle ch; Win2d*ud; USGC*s,*s1,name[13],ss[81]; Rectwr = 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 {for(x=r.x0,k=0; x {s[k] = g_point(x, y, 0); g_point(x, y, s[k]);} PutGCL(ch, s, nx,i); } pal= pallet; for(ii=0;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); } voidFr_Load(WinHandle w) {GWHandle chl; inti,k,x,y,x1,y1,nx,ny; Rectr; EventRecord e; charname[81],s[81],*s1; int*pi; unsignedchar *c,*pc,*p,*pp; intfin; 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 {f_read(fin,p, nx); for(i = 0; i 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