Возможности и особенности системы Pisoft
Программная система Pisoft Image Framework предназначена для разработчиков и пользователей систем обработки изображений, и может применяться для практических, исследовательских и учебных целей в качестве интегрированной среды работы с изображениями. Областями применения данной системы являются: медицина, металлургия, радиология, фармакология, неразрушающий контроль, геология, удаленное зондирование, дорожный мониторинг, слежение за движущимися объектами, автоматическое распознавание целей, распознавание и анализ документов, мультиспектральный анализ, анализ текстур и многие другие.
Первые версии пакета (вплоть до версии 4.1) являлись исключительно инструментом просмотра и визуального исследования изображений при помощи просмотра численной апертуры, гистограммы яркости, профилей яркости и 3D-визуализации яркости. Кроме того, были реализованы процедуры гистограммной обработки изображений. В версии 5.1 впервые появились возможности пространственной обработки изображений – оконная фильтрация и нормализация фона. Для этой версии был определен специальный внутренний язык программирования Pisoft и создана система отладки и исполнения (интерпретации) программ обработки изображений на этом языке. В дальнейшем, однако, встроенные средства программирования пакета Pisoft развивались в направлении неязыкового визуального программирования. Версия 6.0 ознаменовала собой перевод системы под операционную систему Windows. В ней также впервые был использован многооконный интерфейс пользователя. В версии 7.0 была реализована фреймовая концепция визуального программирования модульных схем обработки изображений, которая приняла свой окончательный вид в версии 9.0. При этом был обеспечен режим online-обработки данных, такой, что любое изменение данных в любом узле схемы приводит к автоматическому изменению всех последующих результатов обработки. Разработанные схемы и соответствующие экранные формы могут быть сохранены для дальнейшего многократного использования.
В настоящее время структурные возможности данной системы обеспечивают:
· Поддержку импорта изображений из боле чем 50 популярных файловых форматов.
· Загрузку, обработку, просмотр и сохранение бинарных, полутоновых (8- и 16-битных) и цветных (включая truecolor) изображений, а также любых двумерных и одномерных числовых массивов, как целочисленных, так и вещественных.
· Скорость обработки, совместимую с работой в реальном времени.
· Возможность адаптивного формирования и передачи от блока к блоку параметров процедур обработки.
· Возможность пополнения системы путем регистрации новых фреймов (в том числе, и разработанных пользователем) в уже инсталлированной и работающей версии.
· Возможность автоматического пересчета и отображения соответствующих геометрических характеристик пользовательских меток от любой точки схемы обработки к любой другой точке этой схемы.
Функциональный состав системы включает большинство популярных процедур обработки и анализа одномерных и двумерных числовых массивов:
· анализ профилей яркости, апертур, проекций и гистограмм, различные средства геометрических измерений;
· линейные, нелинейные и произвольные геометрические преобразования;
· алгебраические операции над одним или несколькими изображениями;
· линейные, нелинейные и произвольные яркостные и цветовые преобразования;
· линейная и нелинейная фильтрация изображений в пространственной области;
· фильтрация изображений в частотной области, wavelet transform;
· корреляционная привязка фрагментов;
· сегментация изображений, выделение и анализ областей и контуров;
· математическая морфология Серра;
· преобразование Хафа, обнаружение прямолинейных структур;
· поиск характерных структур;
· текстурный анализ;
· выделение объектов, вычисление геометрических признаков:
· вычисление статистик.
Таким образом, в настоящее время пакет Pisoft Image Framework представляет собой интегрированную среду обработки и анализа изображений, которая предполагает визуальное программирование структурных модульных схем обработки изображений из имеющихся стандартных блоков. Эта среда реализована в виде приложения для операционной системы Windows.
Рассмотрим теперь наиболее интересные отличительные черты системы Pisoft – фреймовую программную архитектуру и фреймовый интерфейс пользователя.
В 1995 году для создания систем обработки и анализа изображений в ГосНИИАС была предложена оригинальная «фреймовая» программная архитектура ([247], [260], [269]). Она отличается следующими основными особенностями:
- Базовым элементом программной архитектуры являются программные фреймы - объекты, объединяющие данные, процедуры и линки (связи с другими фреймами). Любая схема обработки в этой архитектуре представляется в виде сети фреймов. Ее структура определяется набором фреймов и установленными между ними связями.
- Фреймы принимают и порождают сообщения, которые распространяются по линкам и определяют порядок «запуска» соответствующих процедур обработки данных. Такая структура позволяет организовывать автоматическую обработку данных по мере ее поступления независимо от числа источников информации и степени их временного рассогласования. Для полноценного функционирования сети фреймов необходимы три основных типа фреймов: фреймы данных, фреймы обработки и фреймы управления. Конкретный набор типов фреймов данной предметной области полностью определяет функциональные возможности проектируемых программных систем.
- После создания базового набора фреймов, любые схемы обработки данных могут быть сформированы непосредственно путем графического визуального программирования, без использования какого-либо дополнительного программирования на языках низкого или высокого уровня.
Программные системы, разработанные с использованием фреймовой технологии, обеспечивают:
· оригинальный фреймовый интерфейс пользователя;
· возможность интерактивно формировать из имеющихся готовых блоков любые схемы обработки без использования какого-либо специального командного языка (путем фреймового визуального программирования);
· возможность осуществлять автоматическую обработку данных в заданной схеме по мере их обновления (режим «frames-on-line»).
Фреймовый интерфейс пользователя поддерживает:
· адаптивную настройку меню системы в зависимости от ее текущего состояния, текущего активного окна и характера выполняемых действий;
· адаптивную настройку режима ввода и вывода интерактивной векторной графической информации (маркеры, линии, кривые, прямоугольники и т. п.) во всех необходимых окнах одновременно;
· удобную проблемно-ориентированную навигацию в многооконном интерфейсе;
· адаптивную настройку системы помощи в зависимости от текущего состояния системы, текущего активного окна и характера выполняемых действий;
Отметим также, что в ходе работы над системой Pisoft Image Framework было разработано и отлажено следующее специальное программное обеспечение:
· Базовая библиотека поддержки фреймового программирования.
· Среда визуального программирования сетей фреймов.
· Базовый набор фреймов, реализующий платформу обработки визуальной информации.
· Библиотеки алгоритмов обработки и анализа изображений.
Примеры, приведенные на рис.1.1.4-1.1.6, демонстрируют основные элементы пользовательского интерфейса этой программной системы.

Рис.1.1.4. Элементы интерфейса: палитра фреймов, панель схем, фреймы, окна изображений.

Рис.1.1.5. Элементы интерфейса: меню фреймов, статусная строка, окна данных.

Рис.1.1.6. Элементы интерфейса: контекстное меню, подсказка фрейма, графические слои.
Фреймы. Фреймы являются основными элементами, из которых путем визуального программирования осуществляется построение схем обработки данных. В фреймовой схеме каждый фрейм отображается в виде "кнопки" (иконки фрейма) с управляющими элементами, пиктограммой и кратким названием (рис. 1.1.7).

Рис.1.1.7. Визуальный интерфейс фрейма
При нажатии на иконку появляется меню фрейма, и становятся доступными функции фрейма, такие как ввод параметров и обработка данных, управление окнами и связями, запуск фрейма на исполнение. У каждого фрейма имеются следующие управляющие элементы:
· Управляющая кнопка “!” выводит системную информацию о фрейме:
– входные и выходные связи с указанием поддерживаемых типов данных;
– входные и выходные числовые параметры с указанием их значений.
· Управляющая кнопка “?” выводит индивидуальную справку по фрейму.
· Управляющая кнопка “R” предназначена для замены фрейма на другой фрейм (выбираемый из выпадающего меню) с совместимыми типами входных и выходных связей.
· Управляющая кнопка “X” предназначена для удаления фрейма из схемы.
Палитра фреймов. Палитра фреймов – это набор иконок фреймов расположенных по категориям (закладкам). Для вставки фрейма в схему необходимо нажать на соответствующую кнопку палитры фреймов, затем указать нужное место в фреймовой схеме. Палитра фреймов служит для быстрого выбора фрейма, вставляемого в схему обработки. Альтернативными способами вставки фрейма являются пункт меню системы «Фреймы» или контекстное меню фреймовой схемы.
Фреймовые схемы. Фреймовые схемы предназначены для реализации процедур обработки изображений и одномерных сигналов. Фреймовые схемы состоят из набора фреймов с установленными между ними связями.
Для соединения фреймов в фреймовой схеме служат связи (линки). Связи бывают входные и выходные. Выходные связи могут разветвляться («от одного – ко многим»). Во время работы фреймов по связям происходит обмен данными (изображениями, сигналами), числовыми параметрами, сообщениями. Для обозначения связей фреймы имеют специальные поля (кнопки). Входные связи находятся слева, выходные – справа. Если известен тип данных, находящийся в связи, он отображается в виде соответствующей пиктограммы. Установка связи между фреймами может осуществляться двумя способами: перетаскиванием линии с помощью мыши от поля входной связи к выходной, либо перетаскиванием линии с помощью мыши от выходной связи к входной.
Для работы с фреймовыми схемами предназначены пункты меню “Файл” и “Стандартные схемы” главного меню системы. Подпункты меню “Файл”:
· Новая схема. Команда формирует новую панель схемы и загружает схему, которая установлена по умолчанию.
· Открыть. По данной команде выдается диалог открытия файла. При выборе файла создается новая панель, и в нее загружается выбранная схема.
· Сохранить. По данной команде выдается диалог сохранения файла. Активная схема сохраняется в заданный файл.
· Закрыть. Данная команда уничтожает активную схему.
· Схема по умолчанию. По данной команде активная схема становится схемой по умолчанию. Она будет загружаться при входе в систему и по команде Новая схема.
· Добавить в стандартные. По данной команде выдается диалог описания схемы. Затем активная схема добавляется в набор стандартных схем, список которых появляется в виде меню пункта Стандартные схемы.
В диалоге описания схемы необходимо ввести следующие строки:
· Категория схемы. Создаваемая схема может входить в новую или ранее созданную категорию. Категория появляется в виде подменю пункта Стандартные схемы.
· Описание схемы. Данная строка появляется как пункт меню в подменю категорий стандартных схем.
· Короткое имя схемы. В настоящий момент данная строка используется только как имя файла, куда сохраняется схема.
· Выполнить. Данная команда делает следующее. Во всех фреймах ввода данных, не имеющих входных связей (пример – “Import”), активизируется система подсказок, и система предлагает ввести данные в схему. Далее схема выполняется с новыми данными.
· Настроить. По данной команде все фреймы схемы переходят в неинициализированное состояние. Система подсказок помогает настроить каждый фрейм и выполнить обработку.
Подменю “Стандартные схемы” главного меню системы содержит список всех стандартных фреймовых схем, зарегистрированных в системе. Список разбит на категории (подменю), внутри каждой из которых располагаются все стандартные схемы данной категории. При выборе схемы из данного меню, она загружается в панель фреймовых схем.
Контекстное меню фреймовой схемы появляется при нажатии клавиши мыши на активной связи (обозначаемой красным светом). Меню содержит команду удаления связи, а также список фреймов для быстрой вставки в схему. Данный список формируется динамически в соответствие с типом данных активной связи.
Синхронизация. Каждый фрейм имеет две связи, которые по умолчанию не видны, и их использование необязательно. Данные связи предназначены только для уведомления. Если установлена входная связь уведомления, то данный фрейм начинает работу, только когда по данной связи придет соответствующий сигнал синхронизации. Если установлена выходная связь уведомления, то данный фрейм после окончания работы посылает по ней сигнал, инициирующий запуск последующих фреймов схемы. Данные связи предназначены для реализации пакетных/циклических обработок и для синхронизации работы схемы.
Маскирование. Некоторые фреймы имеют также входную связь “Mask”, которая по умолчанию не видна, и ее использование не обязательно. Ее можно визуализировать через пункт меню фрейма “Mask”. Связь предназначена для задания бинарной маски, которая указывает только те пикселы, в которых происходит обработка.
Окна. Окна изображений и сигналов служат для просмотра промежуточных результатов обработки. Окна могут быть как встроенными, так и плавающими. Некоторые фреймы могут иметь собственные окна данных, которые, как правило, открываются и закрываются по желанию пользователя через меню фрейма. Если предусмотрена возможность изменения данных пользователем, то фрейм может автоматически запускать обработку на основе измененных данных. Диалоговые окна служат для ввода параметров в процедуры обработки. Диалоговые окна являются модальными и приостанавливают работу системы, пока пользователь не введет параметры. После ввода параметров запускается соответствующая процедура обработки.
Подсказки. Поскольку каждый фрейм – это отдельный модуль системы со своим набором функций и достаточно сложным интерфейсом, в системе реализована контекстно-фреймовая система подсказок. Если фрейм находится в неинициализированном состоянии (не выбрана процедура обработки, не введены параметры обработки, отсутствуют необходимые графические объекты и т. д.), то он выдает короткую подсказку пользователю о возможных дальнейших действиях.
Графические слои. Некоторые фреймы в процессе работы могут изменять состояния окон изображений и сигналов, отображая в них результаты обработки в одном или нескольких дополнительных графических слоях. Графические слои в данной системе предназначены для визуализации графических объектов и интерактивной работы с графическими объектами в окнах изображений. Функции графических слоев:
· визуализация слоев векторных объектов на изображении (пассивные графические слои);
· прием команд пользователя и сообщений мыши для интерактивной работы (активные графические слои).
· наличие всплывающего меню для операций с объектами;
· возможность вывода растровой графики как объекта (изображение поверх изображения)
Свойства графических объектов, составляющих графические слои:
· интерактивный ввод, удаление;
· перемещение узлов и всего объекта;
· переопределяемый цвет, гладкость, форма.
Отличительной особенностью данной системы является то, что графические слои, как программные объекты, принадлежат не окнам данных и даже не фреймам данных, а фреймам процедур, которые работают с этими данными. Как правило, фреймы размещают графические слои в окнах данных, если необходима информация, которая может быть указана пользователем на изображении. Как только такая информация будет введена пользователем, фрейм автоматически запускает процедуру обработки.
Меню активного графического слоя является контекстным и вызывается нажатием правой клавиши мыши в окне данных. Меню состоит из команд вида Имя: Команда, где Имя – имя фрейма-владельца графического слоя или одно из системных имен (‘Источник’,‘Приемник’, ‘Область’ и т. д.). Меню состоит из подмножества следующих команд (в зависимости от текущей ситуации):
· Новая линия. Команда заканчивает построение текущего объекта типа линия.
· Новый полигон. Команда заканчивает построение текущего объекта типа полигон.
· Движение. Команда включает режим перемещения объекта целиком.
· Удалить узел. Команда удаляет узел объекта, на который указывает мышь.
· Удалить объект. Команда удаляет объект, на который указывает мышь, целиком.
· Свойства. Команда выдает диалоговое окно, в котором можно посмотреть координаты всех точек объекта, и изменить его визуальные свойства (гладкость, цвет).
· Вращение. Команда реализована только для объекта типа прямоугольник. Она включает режим вращения прямоугольника. Вращение осуществляется с помощью мыши с помощью захвата и перемещения одного из углов прямоугольника.
· Выбрать все. Команда реализована только для объекта типа прямоугольник. Она создает новый прямоугольник заключающий в себя все изображение, содержащееся в окне.
· Точка. Режим построения объектов типа ‘точка‘.
· Линия. Режим построения объектов типа ‘линия‘.
· Полигон. Режим построения объектов типа ‘полигон‘.
· Прямоугольник. Режим построения объектов типа ‘прямоугольник‘.
· Вектор. Режим построения объектов типа ‘вектор‘ (частный случай объекта типа ‘линия‘).
Статусные строки. Статусные строки предназначены для отображения справочной и курсорозависимой информации. В статусной строке приложения, как правило, отображается назначение команд меню и другая текстовая информация. В статусной строке окон изображения отображается информация о координатах курсора, а также информация о данных под курсором.
Меню фрейма. На рис.1.1.8 показан пример меню фрейма, появляющегося при нажатии на иконку фрейма.

Рис.1.1.8. Типовое меню фрейма
Меню фрейма, как правило, содержит следующие группы команд:
· Функции обработки. Данные команды служат для выполнения работы, специфичной для каждого фрейма. Более подробную информацию по ним можно найти в справке к каждому конкретному фрейму.
· Управление показом данных. Команды данной группы служат для управления окнами входных и выходных данных фрейма. Окна можно показать, скрыть, или открыть заново другим вьюером. В системе может быть зарегистрировано несколько компонентов просмотра данных. Например, для просмотра изображений имеется простой вьюер, состоящий из одного окна (Simple viewer) и многофункциональный вьюер, включающий несколько инструментов анализа изображений (Advanced viewer).
· Управление параметрами. Фреймы могут иметь входные и выходные числовые параметры, которые также передаются по связям. По умолчанию связи, соответствующие параметрам, скрыты. Их можно визуализировать с помощью данной группы команд.
· Управление уведомлениями. Фреймы имеют входные и выходные связи уведомления. По умолчанию эти связи скрыты. Их можно визуализировать с помощью данной группы команд.
· Управление маскированием. Команда управления бинарной маской делает видимой или скрывает соответствующую связь.
· Команда запуска позволяет асинхронно запустить фрейм с текущими настройками.
Средства отображения в режиме «Источник-Приемник». Данные средства служат для включения режима просмотра геометрических трансформаций. Поскольку некоторые фреймы выполняют сложные геометрические преобразования пикселей изображений, было разработано средство для визуального отображения таких преобразований. Команда «Источник» регистрирует указанное окно в качестве источника данных для преобразования, команда «Приемник» задает конечное окно данных в цепи преобразований. Если в текущей схеме существует непрерывная цепь связей (линков) между выбранными окнами, то в них активизируются соответствующие специальные графические слои ‘Источник’ и ‘Приемник’. После этого ручной ввод графических объектов в окне ‘Источник’ приводит к геометрическому преобразованию координат объектов согласно фреймовой схеме (прямое преобразование), причем результат преобразования отображается в окне ‘Приемник’. И наоборот, ввод графических объектов в окне ‘Приемник’ приводит к геометрическому преобразованию координат объектов согласно фреймовой схеме (обратное преобразование), а результат обратного преобразования отображается в окне ‘Источник’. Если прямого или обратного преобразования не существует, то выдается соответствующее системное сообщение.
Типы данных. В таблице показаны типы данных, используемые в системе. Некоторые из них поддерживаются системой Windows в виде стандартного формата BMP. Остальные поддерживаются только системой PiSoft, но хранятся также в формате BMP совместно с дополнительной информацией. Тип данных empty означает, что фрейм может работать, даже если соответствующая связь не содержит данных.
Пиктограмма | Данные | Системное название | Поддержка Windows | Количество каналов |
- | 8-битное полутоновое изображение | 8 bit | Да | 1 |
| 24-битное цветное изображение | 24 bit | Да | 3 |
| 32-битное цветное изображение | 32 bit | Да | 4 |
B | 8-битное многоканальное целочисленное беззнаковое изображение, бинарная маска | Byte | Нет | Любое |
W | 16-битное многоканальное целочисленное беззнаковое изображение | Word | Нет | Любое |
S | 16-битное многоканальное целочисленное знаковое изображение | smallint | Нет | Любое |
I | 32-битное многоканальное целочисленное знаковое изображение | Int | Нет | Любое |
F | 32-битное многоканальное изображение с плавающей точкой | Float | Нет | Любое |
D | 32-битное многоканальное изображение с плавающей точкой | double | Нет | Любое |
1 | Одномерный сигнал | 1D | Нет | 1 |
| Числовой параметр | scalar | Нет | 1 |
Нет данных | empty | Нет | Нет |
Базовые средства просмотра и анализа изображений и видеопоследовательностей
Работа с изображением в системе Pisoft реализована в виде специализированного программного компонента, имеющего вид, показанный на рис.1.1.9. Компонент имеет кнопочную панель инструментов, средства просмотра и анализа изображения и статусную строку.
В статусной строке показываются:
- - текущие координаты курсора;
- - текущий масштаб изображения;
- - значения RGB пиксела, в котором находится курсор.
- - информация, зависящая от текущего средства анализа изображений.

Рис. 1.1.9. Общий вид компонента работы с изображением
Кнопка
включает / выключает инструменты просмотра и анализа изображений.
Кнопка
включает / выключает просмотр векторной графики в средствах просмотра и анализа изображений. Когда кнопка выключена вся графика выводится только в окно Image.
Кнопки
предназначены для включения / выключения просмотра соответствующих цветовых каналов. Если изображение монохромное или имеет один канал, то все цветовые каналы одинаковые.
В компоненте реализованы следующие режимы просмотра изображений.
Увеличение изображения. Режим включается кнопкой
панели инструментов. В этом режиме при нажатии левой клавиши мыши в области изображения, масштаб изображения увеличивается в 2 раза. При этом изображение центрируется в соответствии с координатами точки, в которой произведено нажатие. Кратковременное включение режима может быть произведено также клавишей Ctrl без использования панели инструментов.
Уменьшение изображения. Режим включается кнопкой
панели инструментов. В этом режиме при нажатии левой клавиши мыши в области изображения, масштаб изображения уменьшается в 2 раза. При этом изображение центрируется в соответствии с координатами точки, в которой произведено нажатие. Кратковременное включение режима может быть произведено также клавишей Alt без использования панели инструментов.
Передвижение по изображению. Режим включается кнопкой
панели инструментов. В этом режиме при нажатии левой клавиши мыши в области изображения, изображение центрируется в соответствии с координатами точки, в которой произведено нажатие. Кратковременное включение режима может быть произведено также клавишей Shift без использования панели инструментов.
В компоненте имеются следующие инструменты просмотра и анализа изображений.
Изображение (Image). Окно Image является окном «по умолчанию». В нем можно просматривать изображение и векторную графику, если выключены остальные инструменты просмотра.
Гистограмма (Histogram). Данное средство служит для просмотра и анализа гистограммы изображений (рис.1.1.10). Построение гистограммы производится внутри прямоугольной области, задаваемой пользователем. По умолчанию размеры области совпадают с размерами изображения. Цвет гистограммы (красный, зеленый, синий) соответствует цветовому каналу (R, G,B).
При движении курсора внутри области построения гистограммы значения пиксела отображаются на графике гистограммы в виде вертикальных линий. При движении курсора по графику гистограммы, соответствующие значения гистограммы отображаются в статусной строке.
Данное средство позволяет осуществлять пороговую сегментацию изображения. Пороговая сегментация включается кнопкой Thresholding. При этом для каждого канала можно задать нижний (Low) и верхний (High) пороги яркости, которые также отображаются на графике гистограммы в виде круговых меток. Если Low<=High, то слой яркости между Low и High выводится на изображении. Если для какого-либо канала задано Low>High, то результат сегментации для данного канала не выводится. Результат сегментации выводится для каждого канала или в виде бинарной маски (при включенной опции Binary mask) или в виде яркостной маски, в которой яркости взяты из исходного изображения.
Также реализован метод бинаризации по методу Отсу, который включается опцией Otsu. При этом значение Low в каждом канале принимает значение соответствующего порога по Отсу.
Вертикальная и горизонтальная проекции (Projection). Данное средство служит для просмотра и анализа проекций изображения (рис.1.1.11). Построение проекций производится внутри прямоугольной области, задаваемой пользователем. По умолчанию размеры области совпадают с размерами изображения. Цвет проекций (красный, зеленый, синий) соответствует цветовому каналу (R, G,B).
При движении курсора по графику проекции, соответствующие значения проекции отображаются в статусной строке.
Апертура (Aperture). Апертура (рис. 1.1.12) предназначена для одновременного просмотра исходного и увеличенного изображения. Увеличенное изображение центрируется в текущих координатах курсора. При достаточном увеличении на апертуре также выводятся численные значения яркости пикселов.
Вертикальный и горизонтальный профили (XYProfile). Данное средство служит для просмотра и анализа профилей изображения (рис.1.1.13). Профили строятся по строке и столбцу изображения, где находится курсор. Построение профилей производится внутри видимой области изображения. Цвет профиля (красный, зеленый, синий) соответствует цветовому каналу (R, G,B).
При движении курсора по графику профиля, соответствующие значения профиля отображаются в статусной строке.
Профиль вдоль произвольной кривой (Profile). Данное средство служит для просмотра и анализа профиля изображения вдоль произвольной кривой (рис. 1.1.14). Цвет профиля (красный, зеленый, синий) соответствует цветовому каналу (R, G,B).
При движении курсора по графику профиля, соответствующие значения профиля отображаются в статусной строке. При движении курсора по профилю (это можно сделать при двукратном увеличении) местоположение курсора показывается на графике вертикальной линией.
Поверхность функции яркости (Surface). Данное средство служит для просмотра фрагмента изображения в виде трехмерной поверхности (рис. 1.1.15). Фрагмент задается пользователем в виде прямоугольника. Используются следующая система координат: оси X, Y соответствуют осям x, y изображения, ось Z соответствует яркости изображения, как функции от (x, y). Изображение поверхности может формироваться одним из четырех методов, задаваемых в выпадающем списке:
– Fill – однородный цвет поверхности;
– Frame – поверхность в виде сетки (без удаления невидимых граней);
– Image – для цвета каждого участка поверхности используется яркость соответствующего пиксела изображения;
– Light – освещение поверхности точечным источником света.
Для просмотра поверхности имеются следующие средства:
- вращение системы координат – кнопки
;
- расширение / сужение угла зрения - кнопки
;
- перемещение вдоль направления ‘взгляда’ (приближение, отдаление) – кнопки
.
Табличные преобразования яркости (LUT). Данное средство использует таблицу преобразования яркости (Look Up Table) для просмотра изображения. Функция преобразования показывается в виде графика. Реализованы следующие преобразования:
- - Linear - линейное преобразование яркости;
- - Negative - обратное преобразование яркости (инверсия изображения);
- - Equalize – эквализация изображения.
- - Custom – преобразование, задаваемое пользователем.
Эквализация предназначена для просмотра малоконтрастных и практически невидимых деталей на изображении. Эквализация изображения представляет собой такое преобразование яркости, после которого гистограмма изображения имеет ровный вид, т. е. все ячейки гистограммы имеют одинаковые значения. Гистограмма строится по выделенному пользователем фрагменту, а полученное табличное преобразование применяется ко всему изображению.
В режиме Custom пользователь может прямо на графике с помощью мыши ввести необходимую зависимость яркости (рис. 1.1.17).

Рис. 1.1.10. Средство построения и анализа гистограммы

Рис. 1.1.11. Средство построения и анализа проекций

Рис. 1.1.12. Апертура

Рис 1.1.13. Средство построения и анализа профилей

Рис. 1.1.14. Средство построения и анализа профиля вдоль произвольной кривой

Рис. 1.1.15. Средство просмотра изображения в виде трехмерной поверхности

Рис. 1.1.16. Средство для табличных преобразований яркости

Рис. 1.1.17. Пример задания табличного преобразования яркости
Кроме перечисленных средств компонента «Изображение», к базовым средствам работы с изображениями относятся следующие.
Фрейм Convert преобразования формата (рис. 1.1.18) (закладка «Разное») осуществляет преобразование формата внутреннего представления пикселов изображения, например Байт -> Вещественное, Целое (32 bit) -> Целое (16 bit) и т. д. См. список фреймов в приложении.

Рис. 1.1.18. Меню фрейма Convert преобразования формата изображения.
Использование фрейма Convert рассмотрено в примерах раздела 3.5 (рис. 3.5.36).
Фреймы, позволяющие загружать отдельное изображение или видеопоследовательности, находятся в закладке «Источник данных».
Фрейм Im Import (рис. 1.1.19) даёт возможность загружать одиночные изображения (пункт меню «Импорт одного изображения») или последовательность bmp-файлов (пункт меню «Пакетный импорт»).
Бывает очень полезно сохранять изображения, получившиеся в результате обработок (результирующие изображения). По нажатию на кнопку выходных связей фрейма (рис. 2.6.18) из выпадающего контекстного меню «Сохранить как» можно сохранять результаты обработки изображения для большинства фреймов.

Рис. 1.1.19. Контекстное меню сохранения выходного изображения по нажатию на кнопку выходных связей фрейма.
С помощью фрейма AviImp (рис. 1.1.20) можно загружать avi-видеоролики, а фрейм AviSave позволяет конвертировать последовательность bmp-файлов в видео формата avi.

Рис. 1.1.20. Пример использования синхросигналов – связь протянутая из выхода последнего фрейма RCorr корреляции на фрейм AviImp загрузки видео в формате avi
Рассмотрим использование синхросигналов на примере обработки видеопотока, загруженного в фрейм AviImp. Для корректного отображения результатов обработки видеопоследовательности иногда необходимо, чтобы каждый следующий кадр поступал в фреймы обработки после окончания обработки предыдущего кадра. Для этого используется управление уведомлениями. В схеме выбираем фреймы ожидающие поступления синхросигналов и фреймы формирующие синхросигналы. В меню этих фреймов выбираем пункт «Уведомление» и для ожидающих поступления синхросигналов устанавливаем «Вход», а для формирующих синхросигналы – «Выход». Соединяем связью вход и выход. На рис. 1.1.20 фрейм AviImp ожидает поступления синхросигналов, а фрейм RCorr формирует синхросигнал.
Алгебра изображений
Фреймовый состав закладки «Алгебра» даёт возможность производить алгебраические операции над изображениями – сложение, вычитание, умножение, побитовые операции.
Фрейм ALU операций над двумя изображениями производит попиксельные операции над двумя изображениями следующим образом:
Im3[x, y] = Im1[x, y] op Im2[x, y],
где Im1, Im2 – входные изображения, Im3 – выходное изображение, op – одна из операций, выбираемых через меню фрейма.
В практических занятиях в третьей главе рассмотрены несколько примеров использования этого фрейма. Например, в разделах морфология (бинарная морфология) (рис. 6.4.1), линейная фильтрация (рис. 3.5.30) и других.
На рис. 2.6.20 представлена схема, иллюстрирующая применение операции «Исключающее ИЛИ», являющейся аналогом сложения по модулю 2.
В фрейм Im Import загружено исходное изображение (окно слева), обработанное операцией «Подчёркивание краёв» по маске 3х3 (меню фрейма Conv). Результат – в центральном окне. В окне справа – изображение, полученное в результате сравнения операцией «Исключающее ИЛИ» двух изображений – исходного и отфильтрованного операцией «Подчёркивание краёв».

Рис. 2.6.20. Операция «Подчёркивание краёв» по маске 3х3 и сравнение изображений операцией «Исключающее ИЛИ». Окна изображений слева направо: исходное изображение; изображение, обработанное оператором подчёркивания краёв; результат сравнения двух изображений операцией «Исключающее ИЛИ»
Фрейм Mono унарной алгебры позволяет производить алгебраические операции с одним изображением. Работа с фреймом (рис. 3.5.16) описана в практических занятиях в третьей главе в разделе «наложение шума».
Ещё один полезный фрейм закладки «Алгебра» – фрейм ImMax поиска локальных максимумов осуществляет поиск локальных максимумов на изображении или одномерном сигнале в области заданного размера. При вызове пункта меню «Локальные максимумы» (рис. 2.6.21) появляется диалог (рис. 2.6.22) В окне диалоге следует задать размеры апертуры – области, внутри которой будут вычисляться локальные максимумы, и определить количество искомых максимумов.
Применение фрейма ImMax описано в практических занятиях исследования преобразования Хафа в разделе 5.7.
|
|
Рис. 2.6.21. Меню фрейма ImMax поиска локальных максимумов | Рис. 2.6.22. Окна диалога фрейма ImMax поиска локальных максимумов |
Геометрические преобразования изображений
На закладке «Геометрия» представлен набор фреймов, реализующий различные геометрические преобразования над изображениями, в т. ч. аффинное и перспективное.
Также операции геометрических преобразований реализованы в фреймах Trnsf2_1 и Trnsf1_1, находящихся в закладке «Писофт 8.0».
На рис. 2.6.23 и рис 2.6.24 показаны схемы, реализующие аффинное и ортогональное преобразования с осуществлением привязки точек первого изображения к соответствующим точкам второго. В два фрейма Im Import1 и ImImport2 источников данных загружены изображения (окна слева и центральное), повёрнутые на 90 градусов друг относительно друга. Расставим на каждом изображении по 3 маркера, по которым фрейм Trnsf2_1 произведёт привязку. Результирующие изображения выведены в правые окна (рис. 2.6.23 и рис 2.6.24). Заметим, что в окне диалога Information (рис. 2.6.24) значение параметра FiRad угла взаимного положения изображений равен 1,566, что подтверждает, что изображения повёрнуты друг относительно друга на 90 градусов.

Рис. 2.6.23. Аффинное преобразование. Привязка точек первого изображения к соответствующим точкам второго. В двух первых окнах слева направо находятся исходные изображения. В третьем окне – результат.

Рис. 2.6.24. Ортогональное преобразование. Привязка точек первого изображения к соответствующим точкам второго. В двух первых окнах слева направо находятся исходные изображения. В третьем окне – результат.
Фрейм RTransf производит произвольное резиновое преобразование над изображением. На исходном изображении необходимо задать нужное количество векторов (не менее одного), в окрестности которых произойдёт резиновая деформация таким образом, что точки начала каждого вектора будут перемещены в конечные точки соответствующих векторов, а пикселы в окрестности векторов будут перемещены (пересчитаны) согласно формуле, моделирующей характер резиновых искажений.
На исходное изображение в окне слева (рис. 2.6.25) нанесены два вектора в направлении слева направо и навстречу друг другу. Фрейм RTransf1 реализует преобразование в направлении заданных векторов (изображение в центре), а фрейм RTransf2, в котором выбран пункт меню «Инверсия» (рис. 2.6.25), выполняет преобразование в направлениях противоположных заданным. Т. е. для каждого вектора в направлении из конечной точки в его начало. Полученное изображение помещено в окно справа.

Рис. 2.6.25. Резиновое преобразование. Окна изображений слева направо: исходное изображение с нанесёнными векторами, вдоль которых происходит преобразование; трансформированное изображение вдоль заданных векторов; трансформированное изображение вдоль направлений противоположных заданным
Ещё один полезный фрейм в закладке «Геометрия» – фрейм Frag вырезки фрагмента изображения (2.6.26) позволяет с помощью мыши вырезать прямоугольный фрагмент загруженного изображения, указывая левый верхний и правый нижний углы прямоугольника. В математическом плане, кроме вырезки фрагмента, эта операция позволяет моделировать сдвиг в плоскости изображения.

Рис. 2.6.26. Меню фрейма Frag вырезки фрагмента изображения.




