Гончарова Анна Александровна программа

Вид материалаПрограмма

Содержание


1.Введение 1.1.Глоссарий
1.2.Обзор предметной области
1.3.Неформальная постановка задачи
1.4.Математические методы
1.4.3. Взаимная корреляция
1.5.Обзор существующих методов решения
2.Требования к окружению
3.Функциональные требования
4.Требования к интерфейсу
Рис. 1: Структура приложения
5.1.Проект библиотеки RTImageProcModule.dll
5.2.Проект графического приложения RTImageProc.exe
5.3.Проект интерфейса
6.Реализация и тестирование
6.1.Примеры использования
Список литературы
Подобный материал:

Министерство образования и науки Российской Федерации

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

ДАЛЬНЕВОСТОЧНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ



ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК

Кафедра информатики

Гончарова Анна Александровна


ПРОГРАММА ЭКСПРЕСС-АНАЛИЗА ИЗОБРАЖЕНИЙ И ВИДЕО


ДИПЛОМНАЯ РАБОТА






Студент группы 256 ___________

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

_____________ В.К.Фищенко

«____» ________________ 2011 г.

Защищена в ГАК с оценкой _________

Секретарь ГАК

____________ _______________

подпись И.О. Фамилия

«____» ________________ 2011 г.

«Допустить к защите»

Заведующий кафедрой профессор _____________ М.А. Гузев


«____» ________________ 2011 г.



Содержание

1. Введение 3

1.1. Глоссарий 3

1.2. Обзор предметной области 3

1.3. Неформальная постановка задачи 5

1.4. Математические методы 6

1.4.1. Преобразование Фурье и его интегральные характеристики 6

1.4.2. Вейвлет-преобразование 6

1.4.3. Взаимная корреляция 7

1.5. Обзор существующих методов решения 8

2. Требования к окружению 9

3. Функциональные требования 9

4. Требования к интерфейсу 11

5. Проект 12

5.1. Проект библиотеки RTImageProcModule.dll 16

5.2. Проект графического приложения RTImageProc.exe 16

5.3. Проект интерфейса 18

6. Реализация и тестирование 26

6.1. Примеры использования 27

6.2. Тестирование 29

Заключение 31

Заключение 31

Заключение 31

Заключение 31

Заключение 31

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

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

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

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

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

1.Введение

1.1.Глоссарий

  • Преобразование Фурье – операция разложения функции вещественной переменной на элементарные составляющие – гармонические колебания с разными частотами.
  • Двумерный Фурье-спектр – результат дискретного преобразования Фурье двумерного поля, заданного двумерным числовым массивом.
  • ИПХ (интегральная пространственная характеристика) - распределение энергии спектра в угловых секторах.
  • ИЧХ (интегральная частотная характеристика) - распределение энергии спектра в кольцевых секторах.
  • Непрерывное вейвлет-преобразование – разложения сигнала на линейную комбинацию вейвлет функций различного масштаба и смещения.


1.2.Обзор предметной области


Значительную часть рабочего времени современный ученый проводит за монитором персонального компьютера, анализируя какие-либо данные с помощью программ, осуществляя информационный поиск в локальных и глобальных компьютерных сетях, изучая электронные версии научных публикаций и т.д. Во всех случаях он оперирует с двумя видами информации: текстовой и сопровождающей ее визуальной информацией – графиками, диаграммами, изображениями и видео. Визуальный анализ позволяет лучше воспринять содержание текстовой информации. В некоторых случаях было бы полезно дополнить визуальный анализ количественным – измерить геометрические размеры каких-либо объектов на изображении или расстояния между ними, провести статистический спектральный анализ произвольных фрагментов статичных изображений, рассчитать взаимные корреляционные функции между разными фрагментами статичного изображения либо сдвинутыми по времени фрагментами видеопотока, отобразить сигнал изменения интенсивности вдоль произвольных линейных сечений изображений и видео, исследовать частотные и частотно-пространственные свойства этого сигнала, исследовать сигнал изменения во времени средней интенсивности в произвольно задаваемых локальных областях видеопотока, исследовать частотные и частотно-временные свойства этих сигналов. Для выполнения перечисленных видов анализа видеоинформации в распоряжении научного специалиста должны быть, во-первых, средства для сохранения наблюдаемых на экране монитора изображений и видео в файлах графических форматов, во-вторых, соответствующие программы обработки изображений и видео, «понимающие» использованные специалистом форматы файлов видеоданных. Не всегда такие средства имеются в распоряжении исследователя, а если и имеются, то их применение требует выполнения целого цикла вспомогательных технических действий, отвлекающих от основного исследовательского процесса.

Описанная выше проблема применения средств количественного анализа видеоинформации, отображаемой на компьютерном мониторе, в большой степени характерна и для океанологов. Объекты изучения ученых-океанологов часто представляют собой изображения морского дна, морской поверхности, толщи водной среды либо видеозаписи различных океанических процессов. В частности, изображения и видео широко представлены в базах данных океанологической информационно-аналитической системы (ОИАС) ДВО РАН, разработанной в отделе Информационных технологий ТОИ. В связи с этим мною была разработана и включена в систему аналитической поддержки ОИАС программа RTImageProc. Программа имеет компактный интерфейс и позволяет пользователю легко осуществлять все перечисленные выше виды обработки видеоинформации, представленной на экране монитора – корреляционно-спектральный анализ произвольных фрагментов, визуализацию и анализ произвольных линейных сечений, визуализацию и анализ сигнала изменения интенсивности в заданных локальных областях видеопотока.

1.3.Неформальная постановка задачи


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

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

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

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


1.4.Математические методы

1.4.1.Преобразование Фурье и его интегральные характеристики


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

, ,

где (,) – двумерный комплексный массив [5]. Вещественная компонента массива равна интенсивности цвета полутонового изображения, мнимая компонента равна 0. Вычисление ДПФ производится с использованием библиотеки fftw. Очевидно, что спектр также является комплексным массивом. Для отображения его на графиках и для вычисления интегральных характеристик используется модуль компонент спектра.

Интегральная частотная характеристика (ИЧХ) определяется как средняя энергия спектра в кольцевых секторах. Последовательность колец задается рядом параметров: количество колец, радиус первого и последнего колец, ограничивающий угловой сектор [5].

Интегральная пространственная характеристика (ИПХ) определяется как средняя энергия спектра в угловых секторах. Последовательность угловых секторов задается следующими параметрами: количество секторов, радиус внутреннего кольца, радиус внешнего кольца [5].

1.4.2.Вейвлет-преобразование


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

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

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

Непрерывное вейвлет-преобразование задается формулой

, где — родительский вейвлет, — масштаб вейвлета, — параметр смещения вейвлета [2].

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

Сомбреро задается формулой



Вейвлет Морле — комплексный и задается формулой

, где — центральная частота вейвлета [2].

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

,

где и — Фурье-спектры вейвлета и сигнала соответственно [2].

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

1.4.3. Взаимная корреляция


Взаимная корреляция двух сигналов в общем виде определяется следующей формулой



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

, где и — Фурье-спектры исходных сигналов.

Таким образом понятно, что взаимную корреляцию можно эффективно рассчитывать при помощи дискретного преобразования Фурье [3].

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

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

1.5.Обзор существующих методов решения


В настоящее время существует множество программ реализующих перечисленные выше виды анализа, в том числе для изображений. Однако ни одна из них не удовлетворяет в полной мере требованиям быстроты и удобства использования. Для сравнения можно взять пакет MATLAB, а также, например, комплекс программ для анализа изображений, разработанную в ТОИ ДВО РАН — Spectrum [4].




MATLAB

Spectrum

Данная работа

Спектральный анализ

да

да

да

Корреляционный анализ

да

да

да

Вейвлет-анализ

да

да

да

Работа с изображениями

да

да

да

Работа с видео

да

нет

да

Легкость использования

нет

нет

да

Быстрота работы

нет

нет

да

Стоимость

дорогая

бесплатная

бесплатная

Таблица 1: Сравнение существующих решений


2.Требования к окружению


Программа требует .NET Framework 2.0.

Минимальные требования включают:
  • Windows 2000.
  • NET Framework 2.0.
  • Pentium III 600MHz.
  • 128 МБ оперативной памяти.
  • Для анализа видеоизображения следует отключать графическое ускорение.


3.Функциональные требования


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

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

Под локальной областью понимается круглая область экрана. Значение локальной области – скаляр, определяемый как среднее значение пикселей внутри заданного круга.

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

Программа должна предоставлять пользователю следующие инструменты анализа.

Для прямоугольных областей:
  • Двумерное преобразование Фурье. Значения Фурье-спектра отображаются в виде цветового графика. Яркость графика может пропорционально увеличиваться или уменьшаться пользователем.
  • Интегральная частотная характеристика (ИЧХ). График строится в виде гистограммы.
  • Интегральная пространственная характеристика (ИПХ). График строится в виде круговой диаграммы.
  • Взаимная корреляционная функция.
  • Частотно-избирательная фильтрация.

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

Для локальных областей:
  • График временной развертки измеряемого параметра.
  • График одномерного Фурье-спектра временной развертки
  • Вейвлетограмма
  • Вейвлет-фильтрация

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

Программа должна по выбору пользователя сохранять в текстовый файл следующие данные:
  • Значения временной развертки
  • Координаты максимума двумерной и одномерной корреляционной функции
  • Значения линейного сечения
  • Сигнал, полученный при помощи вейвлет-фильтрации

Все текстовые файлы соответствуют формату, принятому в ТОИ ДВО РАН.

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

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

4.Требования к интерфейсу


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

Программа должна предоставлять пользователю возможность выделять область экрана при помощи специального окна-селектора в форме рамки, которое можно перемещать и «растягивать» при помощи мыши.

Окна программы должны располагаться поверх всех остальных окон.


5.Проект


Программа состоит из двух модулей: библиотека RTImageProcModule.dll, написанной на языке С++ и исполняемый модуль RTImageProc.exe, написанный на языке C#. В библиотеке реализованы все алгоритмы, требующие интенсивных вычислений. В программе RTImageProc.exe реализована интерфейсная часть программы. Функции библиотеки вызываются в RTImageProc.exe при помощи технологии P/Invoke платформы .NET.


Рис. 1: Структура приложения




Рис. 2: Диаграмма классов графического приложения




Рис. 3: Диаграмма классов библиотеки




5.1.Проект библиотеки RTImageProcModule.dll


Одной из главных задач при написании библиотеки было достижение максимальной быстроты вычислений. Это достигается двумя путями. Первый - кэширование результатов всех сложных вычислений, как то план расчета ДПФ ( fftwf_plan), ДПФ вейвлетов, маски фильтров и т. д. Второй способ — использование SSE и SSE2 для всех хорошо векторизируемых алгоритмов. Код для SSE было решено написать при помощи технологии Intel Intrinsic.

В библиотеке реализованы следующие классы:
  1. CGlobals — статический класс с часто используемыми алгоритмами. В нем содержится большая часть кода для SSE.
  2. CSpectrum2d — вычисляет двумерный Фурье-спектр. Кроме того, содержит статический метод получения данных из прямоугольной области экрана.
  3. CGeneric1d — базовый класс для CSpectrum1d и CSpectrum0d. Вычисляет одномерный Фурье-спектр, делает сглаживание сигналов.
  4. CSpectrum1d — вычисляет значения линейного сечения.
  5. CSpectrum0d — вычисляет и буферизирует значения локальной области.
  6. CCorrelation — базовый класс для CCorrelation1d и . Реализует общие для обоих типов корреляции методы.
  7. CCorrelation1d — одномерная корреляция.
  8. CCorrelation2d — двумерная корреляция. Кроме корреляции реализует метод частотно-избирательной фильтрации изображения.
  9. CIfc — ИЧХ.
  10. CIsc — ИПХ.
  11. CScaleogram — вычисление вейвлетограммы и вейвлет-фильтрации.

5.2.Проект графического приложения RTImageProc.exe


Большая часть классов этого проекта реализуют один из двух интерфейсов: IModel и IView. Интерфейс IModel, который содержит единственный метод Calculate без параметров, вызываемый каждый раз, когда требуется пересчитать «модель». Классы, реализующие IModel являются своего рода классами-обертками (wrappers) для соответствующих классов библиотеки. Каждой «модели» может соответствовать только один «вид». В некоторых случаях «модель» может не иметь «вида». Например, в случае, когда необходимо рассчитать ИПХ для какой-то области, а график спектра видеть необязательно, будет создана «модель» типа Spectrum2d без «вида». Кроме всего прочего эти классы реализуют сохранение данных в текстовые файлы и хранят данные геометрической привязки.

Программа содержит 8 таких классов:
  1. Spectrum2d — двумерный Фурье-спектр
  2. Generic1d – базовый класс для одномерных данных.
  3. Spectrum1d — одномерный Фурье-спектр
  4. Spectrum0d — временная развертка
  5. Scaleogram — вейвлетограмма
  6. Correlation — двумерная корреляция
  7. Correlation1d — одномерная корреляция
  8. Ifc — ИЧХ
  9. Isc — ИПХ.

Классы типа «вид», реализующие интерфейс IView, перечислены ниже:
  1. SpectrumView — двумерный Фурье-спектр
  2. SectionView — вид линейного сечения. Ему соответствуют модели Spectrum1d, Correlation1d
  3. PointView — вид временной развертки. Ему соответствуют модели Spectrum0d, Correlation1d
  4. CorrelationView — вид двумерной корреляции
  5. ScaleogramView — вид вейвлетограммы
  6. IfcView — вид ИЧХ
  7. IscView — вид ИПХ.

Кроме классов типа «модель» и «вид» в программе реализованы:
  1. Класс главного окна MainForm
  2. Классы окно настроек
  3. Класса окон-селекторов: RectSelector, LineSelector, PointSelector, и их базовый класс Selector
  4. Класс PoiFile для записи текстовых файлов
  5. Класс Plotter для рисования одномерных графиков
  6. Класс окна статистики — StatisticsForm.

5.3.Проект интерфейса


Главное окно программы (класс MainForm) представляет собой небольшую панель с кнопками. Кнопки слева направо: двумерный спектр, линейное сечение, вейвлетограмма, временная развертка, двумерная корреляция, увеличитель, настройки, переключение режима видео/статическое изображение. Нажатие кнопок (кроме последних трех) приводит к появлению нового окна-селектора и соответствующего окна «вида». Вид главного окна представлен на рисунке.


Рис. 4

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

Прямоугольное окно-селектор (класс RectSelector) сделано в виде прямоугольной рамки с дополнительными областями: круглой областью в верхнем левом углу и треугольной в правом нижнем. Нажав мышкой круглую область, пользователь может перемещать рамку, не меняя ее форму. Нажав мышкой треугольную область, пользователь может произвольно «растягивать» рамку. Пока пользователь продолжает «растягивать» рамку, ее изменения не отражаются на графиках, т.к. процедуры, связанные с изменением размера области, являются наиболее затратными по времени, и желательно исполнять их как можно реже. Окно-селектор сделано красным, так как этот цвет наиболее выделяется на фоне типично обрабатываемых изображений (серо-голубой цвет поверхности моря, серый цвет изображений со спутника). Аналогично работают два других селектора. На следующем рисунке представлен вид селекторов на фоне поверхности моря.



Рис. 5

Окно двумерного спектра (класс SpectrumView) состоит из панели инструментов, области графика, ползунка позволяющего уменьшать и увеличивать яркость графика и информационной строки. Панель инструментов содержит следующие кнопки (слева направо): ИЧХ, ИПХ, автонастройка яркости, переключение режима модуль спектра/логарифм модуля, настройки, включение/выключение аподизации, исходное изображение, сохранить график в файл, отобразить области ИЧХ и ИПХ. Нажатие на первые две приводит к открытию окнон ИЧХ и ИПХ соответственно. Автонастройка яркости вызывает функцию AutoAdjust объекта CSpectrum2d. При этом яркость выбирается так, чтобы среднее значение спектра отображалось серым цветом средней яркости. Это может быть полезно при резком изменении яркости исходного изображения. Кнопка «Исходное изображение» переключает окна в режим отображения исходного изображения в тонах серого. Повторное нажатие кнопки переключает окно в исходный режим. Информационная строка содержит значение спектра под курсором мыши (S), направление волны в градусах (Fi) и период волны (P). На следующем рисунке показан

Р
ис. 6

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

Окно ИЧХ состоит области графика и панели инструментов с кнопками: спектр, ИПХ, Параметры и сохранение в файл. Нажатие первых двух кнопок приводит к открытию окна Спектр и ИПХ для той же исходной области, если они уже не были открыты. Кнопка «Параметры» открывает диалоговое окно, задающее параметры ИЧХ. Столбец диаграммы подсвечивается при наведении на него курсора мыши. При этом в информационной строке отображаются значение ИЧХ, номер столбца (K), средний период волны (P). Окно представлено на рис. 7.




Рис. 7

Уменьшение или увеличение размеров окна приводит к пропорциональному изменению размеров графика.

Окно ИПХ выглядит и работает аналогично. На следующем рисунке представлен его в вид.


Рис. 8

Окно двумерной корреляции представлено на рис. 6

Р
ис. 9

Кнопки на панели инструментов: режим плавающее окно, режим фиксированный первый кадр, автонастройка яркости, аподизация, настройки, исходное (фильтрованное) изображение, начать запись в текстовый файл, сохранить график в JPEG. Настройка яркости функционирует аналогично двумерному спектру. В информационной строке содержится значение корреляционной функции (B), направление от центра до максимума корреляционной функции в градусах (Fi) и скорость движение волны (V). Скорость рассчитывается из расстояния от максимума до центра.

Окно линейного сечения представлено на рис. 10.

Р
ис. 10

Кнопки на панели инструментов: переключение режимов сечение/Фурье-спектр/корреляция, вейвлетограмма, автомасштабирование, логарифм спектра, настройки, отменить интерполяцию, начать запись в файл (работает только для режима корреляции), сохранить сечение в файл, показать статистику. Черной линией рисуется исходное значение сечения (либо его спектр или корреляция), а красной — результат вейвлет фильтрации. Ползунок под графиком пропорционально растягивает или сжимает график по оси OY. Числовое поле слева задает ширину окна сглаживания. При ширине равной 1 сглаживание отсутствует. В информационной строке в зависимости от выбранного режима отображается значение сечения, спектра или корреляционной функции под курсором мыши.

Окно временной развертки выглядит аналогичным образом.

Окно вейвлетограммы представлено на рис. 11.


Рис. 11

Кнопки на панели инструментов: сечение (либо временная развертка, если вейвлетограмма считается для локальной области), автонастройка яркости, режим вещественная часть/модуль вейвлет-преобразования, настройки, сохранение графика в JPEG. Настройка яркости аналогична двумерному спектру и двумерной корреляции. При наведении курсора мыши на график прорисовываются оси параллельные координатным осям графика. В информационной строке отображается значение вейвлет-преобразования (W), смещение вейвлета (x), период вейвлета (P) либо его масштаб (S). В окне вейвлетограммы пользователь может мышкой выделить масштабы вейвлетов, по которым нужно произвести фильтрацию сигнала.

На рисунке 12 показано окно статистики.

Р
ис. 12

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

На следующих рисунках представлены некоторые окна настроек. Они имеют интуитивный интерфейс.


Рис. 13

Рис. 14




Рис. 15


Рис. 16




6.Реализация и тестирование


В процессе работы мною было написано примерно 3500 строк кода на языке C++ в 10 модулях и около 10500 строк кода на языке C# в 37 модулях. В программе создано 17 различных экранных форм.

Программа состоит из модуля RTImageProc.exe (236 КБайт) и модуля RTImageProcModule.dll (56 КБайт). Также к программе прилагается библиотека libfftw3-3.dll (1364 КБайт).

6.1.Примеры использования


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

Рис. 17


Хочу также привести пример использования программы в области материаловедения. На следующем изображении приводится описание результата отдела «Физика поверхности» – исследование процесса кластеризации атомов Ge при особых режимах осаждения на кремниевую подложку. Задача важна в связи с проблемой разработки перспективных материалов для организации компьютерной памяти с высокой плотностью записи информации. Описание результата сопровождается полученным с помощью туннельного микроскопа изображением реальной структуры осажденных атомов Ge. Средствами программы RTImageProc рассчитан двумерный Фурье спектр от этого изображения (слева вверху), в котором заметны яркие рефлексы, свидетельствующие об упорядочении кластеров в кристаллическую решетку. Ниже приведены ИЧХ и ИПХ, рассчитанные на основе спектра Фурье. В ИЧХ заметен максимум, указывающий на то, что кластеры в решетке расположены на определенном фиксированном расстоянии друг от друга и оно равно примерно 10 Aнгстрем. ИПХ показывает наличие трех осей упорядочения в расположении кластеров, с помощью маркерной системы можно узнать их направления. Справа приведена рассчитанная с помощью RTImageProc двумерная автокорреляционная функция того же самого изображения, ее вид подтверждает наличие трех осей упорядочения кластеров.

Рис. 18

6.2.Тестирование


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

Отдельно стоит уделить внимание оценке производительности. Я провела замеры времени работы отдельных наиболее времязатратных инструментов при различных параметрах и размерах анализируемых областей. Тестирование проводилось на компьютере с процессором Intel Core Duo с частотой 2.26ГГц.

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

Сторона квадрата в пикселях

Среднее время работы (мс)

200

19

300

53

400

90

500

146

Таблица 2: Время расчета двумерного спектра

Двумерная корреляция так же расчитывалась в квадратах различного размера. Использовалась аподизация кадра. Задержка между коррелируемыми кадрами была установлена по умолчанию — 4 кадра. Фильтрация кадра не использовалась.

Сторона квадрата в пикселях

Среднее время работы (мс)

100

13

200

64

300

109

400

143

Таблица 3: Время расчета двумерной корреляции

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

Длина сечения в пикселях

Высота изображения

Среднее время работы (мс)

400

150

11

500

150

21

300

300

14

400

300

28

500

300

38

Таблица 4: Время расчета вейвлетограммы

Заключение


Таким образом, в процессе курсовой работы:
  1. Разработана программа экспресс-анализа изображений и видео для океанологов, материаловедов и других научных специалистов, удовлетворяющая поставленным требованиям.
  2. В программе реализованы средства спектрального и взаимного корреляционного анализа произвольных фрагментов изображений, средства анализа линейных сечений и сигнала временной развертки интенсивности видеопотока в локальных областях
  3. Программа используется в ТОИ ДВО РАН (~ 15 человек), ИКИ РАН, ИПЛИТ РАН, ИФИТ ДВГУ
  4. Возможна доработка функциональности программы:
          • реализация локальных преобразований контраста, линейной и нелинейной фильтрации произвольных фрагментов
          • учет неортогональности проекции наблюдения изображения


  1. Планируется регистрация программы в Государственном реестре программ для ЭВМ РФ


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

  1. Cross-correlation, ссылка скрыта.
  2. FFTW 3.1.2 User Manual, ссылка скрыта.
  3. Paul S. Addison. Wavelet Transforms and ECG: a review, August 2005, ссылка скрыта
  4. Vitaly K. Fishchenko, Leonid M. Mitnik. Slicks as Indicators of Marine Processes (SIMP). Task 4.2.5.4 Specialized GIS for Marine Coastal Areas, Project INTAS № 03-51-4987, 2006.
  5. Гонсалес Р. Вудс Р. Цифровая обработка изображений, М.: Техносфера, 2005.
  6. Марпл С.Л Цифровой спектральный анализ и его приложения. М.: Мир, 1990.