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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 23.09.2012
Размер файла 8,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Введение

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

Из-за погрешности механического перемещения предметного столика, возникает проблема совмещения фрагментов.

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

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

Цель работы

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

Исходные данные

Медицинские изображения, полученные с использованием системы АТЛАНТ-микро.

Основные задачи

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

Анализ источников получения изображений;

Исследование основных свойств изображений;

Изучение описаний типовых алгоритмов совмещения фрагментов;

Изучение алгоритмов совмещения фрагментов;

Разработка алгоритмов совмещения фрагментов;

Разработка требований к программному обеспечению;

Разработка требований к аппаратному обеспечению;

Разработка требований к методическому обеспечению;

Разработка программного обеспечения системы:

Разработка структурной схемы программы;

Разработка пользовательского интерфейса программы;

Реализация алгоритмов совмещения фрагментов и инструментов для оценки работы алгоритмов;

Тестирование системы;

Разработка методического обеспечения системы:

Разработка руководства пользователя;

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

Разработка лабораторного практикума;

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

1. Предпроектное обследование

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

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

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

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

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

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

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

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

Одной из основных целей системы АТЛАНТ-микро является автоматизация процесса диагностики, поэтому получение корректного изображения является 1 из основных задач этой системы.

1.1 Анализ системы получения изображений микропрепарата Атлант-микро

Исходными данными для разработки системы являются изображения микроскопических препаратов, полученные с помощью системы АТЛАНТ-микро, общая схема которой представлена на рис.:

Рис. 1.1 - Общая схема системы АТЛАНТ-микро

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

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

Изображения, полученные в системе АТЛАНТ-микро, имеют следующие характеристики, смотри таблицу 1.1

Таблица 1.1

Формат изображенияФормат изображения:

*.bmp

Ширина:

696

Высота:

570

Глубина цвета (бит/пиксель):

24

1.2 Анализ изображений получаемых системой Аталант Микро

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

Малое количество контрастных объектов;

на нескольких кадрах;

Рис. 1.2 - Малое количество контрастных объектов на 2х последовательно снятых кадрах на большом количестве кадров;

Рис. 1.3 - Большая область с малым количеством контрастных объектов

Большой перепад яркости на двух смежных кадрах;

Рис. 1.4 - Два смежных кадра с большим перепадом яркости

Сильно разнящийся «шаг» при съемке (возможно наложение до 90%);

Последовательность кадров с недостаточной яркостью

Рис. 1.5 - Фрагмент с недостаточной яркостью

1.3 Анализ алгоритмов совмещения фрагментов

Процесс составления из ряда кадров единого изображения называется ститчингом (stitching - склеивание).

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

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

Данный алгоритм используется в следующих программных продуктах CANON PhotoStitch, FlamingPearFlexify, PanoramaComposer, PanoramaMaker, PhotovistaPanorama, PixMakerPro, Pixtra, 3dPhotoBuilderProfessional, EasyPano Tourweaver, Panorama Factory

Все приведенные выше программы пасуют при необходимости сшивать сложные многорядные панорамы.

Революция в алгоритмах сшивания панорам произошла в 1998 году, когда профессор физики Хельмут Дерш (Helmut Dersch) из Технического Университета города Фюртванген (ФРГ) выложил на своем сайте www.fh-furtwangen.de/~dersch ряд разработанных им программ, которые и по сей день являются самым известным и популярным среди фотографов инструментом создания панорамных изображений. Главное достоинство подхода, лежащего в основе этих программ, заключалось в том, что он позволял получать панорамы любых типов из снимков, полученных с помощью практически любого объектива. С их помощью можно сшивать как однорядные, так и многорядные панорамы. Наличие на исходных снимках всякого рода геометрических искажений также не является препятствием для получения панорам хорошего качества. Еще одним немаловажным достоинством разработки Х. Дерша являлось то, что она распространялась и распространяется до сих пор совершенно бесплатно. Более того, автор сделал свой проект открытым и теперь любой может внести свою лепту в дальнейшее совершенствование его программ и методик.

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

Первоначально пакет программ Х.Дерша получил название Panorama Tools и представлял собой 4 плагина к Фотошопу или любому другому растровому графическому редактору, работающему со слоями. В дальнейшем, по мере совершенствования, пакет пополнился несколькими самостоятельными программами. В состав пакета входит также т.н. PTViewer - программа просмотра панорамный изображений. Сегодня весь этот пакет, состоящий из плагинов Panorama Tools, 8-ми самостоятельных программ и PTViewer'а, носит название PanoTools.

Пакет PanoTools мог бы, претендовать на роль той самой 'универсально-идеальной' программы сшивания, если бы не одно весьма существенное обстоятельство. Работа с PanoTools предусматривает весьма тщательную расстановку контрольных точек на одинаковых элементах смежных областей исходных изображений. Причем выходное качество, весьма чувствительно к количеству и точности их расстановки. В настоящее время предпринимаются попытки создания программ автоматического определения координат контрольных точек, но, но полностью обойтись без ручного вмешательства в работу этих программ (проблема ложных точек) вряд ли удастся. Изначально пакет не предусматривал наличие вообще какого-либо графического интерфейса пользователя (GUI). Однако сегодня эта проблема успешно решена как самим автором PanoTools (программа PTPicker), так другими разработчиками (программы PTGui, PTAssembler и PTMac). 3 последних программы уже не являются бесплатными. Следует отметить, что эти 3 программы не содержат какие-либо дополнения или усовершенствования к программам и методикам профессора Дерша. Они лишь предоставляют графический интерфейс для работы с созданными им средствами.

2. Разработка требований

2.1 Разработка концептуальной модели

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

Рис. 2.1 - Концептуальная модель системы

Блок совмещения фрагментов - данный блок должен содержать в себе алгоритмы совмещения фрагментов.

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

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

2.2 Разработка требований к системе

2.2.1 Разработка требований к программному обеспечению

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

Наличие 1 исходного алгоритма и 3х разработанных;

Наличие средств анализа результатов работы алгоритмов;

Иметь понятный интерфейс с малкой степенью вложенности меню;

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

Совместимость с современными ОС, такими как: Windows XP, Windows 7, Windows Vista;

2.2.2 Разработка требований к методическому обеспечению

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

Подробное руководство с описанием основных функций программы;

Методику проведения эксперимента с использованием разработанного программного обеспечения;

Лабораторный практикум с текстом трёх лабораторных работ, рассчитанных на три академических часа каждая;

2.2.3 Разработка требований к экспериментальному исследованию

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

Цель и задача эксперимента;

Проведение эксперимента;

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

2.2.4 Разработка требований к аппаратному обеспечению

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

Операционная система Windows XP (SP2 или выше) / Windows Vista / Windows 7;

Процессор Intel Pentium с тактовой частотой 3 ГГц или лучше;

2Гб оперативной памяти;

Объём памяти видеоадаптера 256 Мб;

100 Мб свободного места на жестком диске;

Клавиатура и мышь.

3. Разработка алгоритмов совмещения фрагментов

3.1 Базовый Алгоритм

Рис. 3.1 - Базовый алгоритм совмещения фрагментов

На основе предпроэктного обследования и принципа работы данного алгоритма, становятся видны 3 глобальных недостатка:

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

Быстродействие. Алгоритм пробегает по всем пикселям области совмещения по несколько раз, по этой причине алгоритм работает крайне медленно.

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

3.2 Повышения корректности совмещения

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

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

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

Рассчитывается порог бинаризации, при котором на изображении останется не более 70% черных пикселей, отбрасывая, таким образом, не информативные области изображения и повышая точность.

3.3 Повышения быстродействия

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

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

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

Строится средний профиль изображений по оси X, т.е. X=(?p(x,j))/H, где j меняется от 0 до H - высота изображения.

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

3.4 Совмещения малоконтрастных областей

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

Для решения этой проблемы были предложены следующие решения:

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

2. Изначально сшивать не все кадры, а только те, которые возможно сшить корректно, а остальные кадры накладывать в пустующие области со средним наложением.

4. Разработка программного обеспечения

4.1 Разработка структурной схемы

Главный модуль программы - данный модуль должен является средством управления остальными модулями и средством перехода между модулями программного комплекса.

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

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

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

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

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

Сохранение панорамного изображения в файл

Сохранение координат фрагментов в файл

Модуль ручного редактирования - данный модуль должен реализовывать возможность ручной корректировки совмещения фрагментов и должен включать в себя следующие функции:

«Плавная» попиксельная корректировка положения фрагмента;

«Грубая» ручная корректировка положения фрагмента;

Выбор зоны корректировки;

Корректировка положения 1 кадра;

Корректировка положения нескольких кадров;

Корректировка положения нескольких горизонтальных полос;

Корректировка положения полосы левее выбранного кадра;

Корректировка положения полосы правее выбранного кадра;

Подсветка выбранной для корректировки зоны;

Модуль навигации - данный модуль должен реализовывать возможность быстрой навигации по панорамному изображению.

Модуль Исследования алгоритмов - данный модуль должен реализовывать собой функционал для исследования алгоритмов.

Модуль анализа результатов работы алгоритмов

Оценка параметров перекрытия

Увеличение выбранной области

4.2 Разработка пользовательского интерфейса системы

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

Малая степень вложенности меню;

Названия пунктов меню должны быть «говорящими»;

Число вспомогательных окон должно быть минимальным;

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

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

Область отображения панорамного изображения - данный элемент предназначен для отображения в масштабе 1:1 изображение панорамы

Контекстное меню - данный элемент предназначен для функций, которые зависят применяются к определенному фрагменту

Обрезать по зоне перекрытия - обрезание фрагмента по зоне перекрытия.

Восстановить - отмена последнего обрезания фрагмента.

Оценка сшивки по перекрытию - вывод параметров перекрытия.

Зафиксировать положение - фиксирование положения фрагмента (необходимо для алгоритма со степенями жесткости).

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

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

Сшивка панорамы - данный пункт меню предназначен для запуска алгоритмов совмещения фрагментов.

Список Загруженных файлов - данный пункт меню вызывает вспомогательное окно с списком всех загруженных фрагментов

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

Графики - построение графиков анализа работы алгоритмов

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

Навигация - данный пункт меню вызывает окно навигации.

4.3 Технология разработки

Средой разработки была выбрана среда Borland С++ Builder 6.0.

Средой выполнения была выбрана операционная система Windows, версии от XP и новее. Критерием выбора данной системы являлись простота освоения для пользователя, распространенность, хорошая техническая поддержка, «богатый» API-интерфейс программирования приложений. Кроме всего прочего, данное семейство операционных систем широко используется в разработках кафедры 46, что даст большую совместимость разработанной системы с уже готовыми системами.

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

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

Библиотемка визуамльных компонемнтов (англ. Visual Component Library, VCL) - объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией Borland (на данный момент поддерживается Embarcadero) для поддержки принципов визуального программирования. VCL входит в комплект поставки Delphi, C++ Builder иEmbarcadero RAD Studio и является, по сути, частью среды разработки, хотя разработка приложений в этих средах возможна и без использования VCL. VCL предоставляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и элементы управления - т. н. «контролы», «контроли»), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее

Для работы с изображениями использовалась библиотека Layer.

Библиотека Layer является разработкой кафедры №46 «Компьютерные медицинские системы». Библиотека предоставляет удобные классы, которые называются леерами, для хранения изображений произвольной разрядности (и вообще матриц с элементами произвольного типа) с настраиваемым доступом к пикселям. В библиотеку входит набор алгоритмов (в понимании STL) обхода пикселей изображений, функции преобразования между изображениями различных разрядностей. Библиотека также поддерживает чтение-запись большого количества графических файлов и вывод изображений на экран. При этом от пользователя скрываются обращения к сторонним библиотекам ввода-вывода и к Windows GDI). Кроме этого в библиотеке содержится набор простейших функций распознавания объектов.

4.4 Реализация базового алгоритма

Особенностью данного алгоритма является то, что он работает с цветными необработанными изображениями.

Этапы работы алгоритма:

Сшивка полосы кадров по горизонтали:

Формируется цикл, в каждом шаге которого уменьшается зона перекрытия от W-10 до W-300, где W - ширина кадра.

По зоне перекрытия считается суммарный попиксельный дифференс, который потом делится на площадь перекрытия, тем самым получается средний дифференс по зоне перекрытия изображений по оси X (высота перекрытия остаётся постоянной и равна H - высоте изображения).

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

После нахождения положения кадра в кадре по оси X, задаётся отклонение по оси Y и по такому же принципу ищется положение по оси Y, т.е. рассчитывается средний дифференс и ищется минимум.

Сшивка 2 полос по вертикали:

Задается перекрытие по вертикали по умолчанию равное 1\3 высоты кадра;

Формируется цикл, в каждом шаге которого уменьшается зона;

По зоне перекрытия считается суммарный попиксельный дифференс, который потом делится на площадь перекрытия, тем самым получается средний дифференс по зоне перекрытия изображений по оси X (высота перекрытия остаётся постоянной и равна H\3);

Далее для найденного X рассчитываем средний дифференс при смещении по оси Y;

Минимальное значение будет равно положению второй полосы в первой по вертикали;

4.5 Алгоритм с бинаризацией на основе гистограмм

Основные шаги алгоритма:

При загрузке изображений в программу обрабатываем каждое изображение маской:

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

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

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

Далее рассчитывается порог бинаризации, при котором на изображении не более 70% черных пикселей.

Сшиваемые изображения бинаризируются с найденным порогом бинаризации.

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

Ищется минимум, который соответствует положению кадра в кадре по оси X

Далее задаётся отклонение по оси Y, считается средний дифференс при смещении картинок относительно друг друга по оси Y на заданное отклонение. Ищется минимум.

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

4.6 Алгоритм поиска минимальной разницы по среднему профилю

При загрузке изображений в программу обрабатываем каждое изображение маской:

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

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

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

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

Строится средний профиль изображений по оси X, т.е. X=(?p(x,j))/H, где j меняется от 0 до H - высота изображения.

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

Полученный средний дифференс обрабатывается маской [-1 0 2 0 -1], чтобы выделить резкие перепады на графике среднего дифференса.

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

Далее изображения обрабатываются маской

|-1 -1 -1 -1 -1|

| 0 0 0 0 0 |

| 0 0 0 0 0 |

| 0 0 0 0 0 |

| 1 1 1 1 1 |

Строится средний профиль по Y (аналогично среднему профилю по X)

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

После сшивки всех кадров по полосам оценивается значение максимума при сшивке по оси X. Если значение максимума больше 0,11 (значение получено опытным путём), то сшивка считается правильной и остаётся без изменений, если значение меньше, то сшивка считается неудачной и положение кадра в предыдущем кадре приравнивается среднему значению всех положений кадров в предыдущих.

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

Найденный кадр и кадр над ним обрабатывается маской для сшивки по оси X

Далее изображения бинаризируются с порогом 7

Формируется цикл, в котором для нижнего кадра строится средний профиль по X для полоски шиной в 90 пикселей от верхней границы кадра, а для верхнего кадра рассчитывается средний профиль по X для полоски шириной в 50 пикселей от нижней границы кадра. В каждом следующем шаге цикла полоска для верхнего кадра поднимается вверх на 25 пикселей и средний профиль строится для неё.

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

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

Рассчитывается средний профиль по оси Y для обоих изображений

Рассчитывается средний дифференс, который потом обрабатывается маской.

Ищется максимальное значение, которое соответствует правильному положению нижнего кадра в верхнем по оси Y

Все остальные кадры выстраиваются относительно новых координат только что сшитых кадров

4.7 Алгоритм совмещения фрагментов со степенями жесткости кадров

Основные шаги алгоритма:

При загрузке изображений в программу обрабатываем каждое изображение маской:

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

|-1 0 0 0 1|

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

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

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

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

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

Строится средний профиль изображений по оси X, т.е. X=(?p(x,j))/H, где j меняется от 0 до H - высота изображения.

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

Полученный средний дифференс обрабатывается маской [-1 0 2 0 -1], чтобы выделить резкие перепады на графике среднего дифференса.

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

Далее изображения обрабатываются маской

|-1 -1 -1 -1 -1|

| 0 0 0 0 0 |

| 0 0 0 0 0 |

| 0 0 0 0 0 |

| 1 1 1 1 1 |

Строится средний профиль по Y (аналогично среднему профилю по X)

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

После сшивки всех кадров по полосам оценивается значение максимума при сшивке по оси X. Если значение максимума больше 0,11 (значение получено опытным путём), то сшивка считается правильной и остаётся без изменений, если значение меньше, то сшивка считается неудачной и положение кадра в предыдущем кадре приравнивается среднему значению всех положений кадров в предыдущих.

Далее в каждой полосе формируются блоки с жёсткой сшивкой.

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

Найденный кадр и кадр над ним обрабатывается маской для сшивки по оси X

Далее изображения бинаризируются с порогом 7

Формируется цикл, в котором для нижнего кадра строится средний профиль по X для полоски шириной в 90 пикселей от верхней границы кадра, а для верхнего кадра рассчитывается средний профиль по X для полоски шириной в 50 пикселей от нижней границы кадра. В каждом следующем шаге цикла полоска для верхнего кадра поднимается вверх на 25 пикселей и средний профиль строится для неё.

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

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

Рассчитывается средний профиль по оси Y для обоих изображений

Рассчитывается средний дифференс, который потом обрабатывается маской.

Ищется максимальное значение, которое соответствует правильному положению нижнего кадра в верхнем по оси Y

Все остальные кадры блока выстраиваются относительно новых координат только что сшитых кадров.

Цикл повторяется для всех блоков в полосе.

4.8 Модуль ручной корректировки

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

Возможность плавной(попиксельной) корректировки;

Возможность грубой корректировки;

Возможность выбора области корректировки;

1 фрагмент;

несколько фрагментов;

все фрагменты полосы левее выделенного;

все фрагменты правее выделенного;

несколько горизонтальных полос;

Рис. 4.1 - Схема работы модуля ручной корректировки

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

Рис. 4.2 - Модуль ручной корректировки

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

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

Рис. 4.3 - Функции обрезания кадра и фиксации положения

4.9 Модуль навигации

Данный модуль должен решать следующие задачи:

Возможность просмотра миниатюры изображения всей панорамы;

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

Данный модуль реализован следующим образом:

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

Рис. 4.4 - Модуль навигации по панораме

4.10 Исследовательский инструментарий

От исследовательского инструментария требуется, чтобы он удовлетворял следующим условиям:

Оценка параметров области совмещения;

Оценка параметров фрагмента;

Оценка корректности совмещения фрагментов;

Инструментарий для оценки «на глаз»

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

Оценка корректности работы алгоритмов;

Исследовательский инструментарий разбит на 3 различных модуля:

Модуль глобальных параметров - параметры фрагмента и области совмещения.

Рис. 4.5 - Параметры сшивки и фрагмента

Модуль оценки качества сшивки

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

Рис. 4.6 - График средних профилей

Модуль оценки зоны перекрытия «на глаз»

Данный модуль представляет собой увеличение выбранной области с 2х кратным или 4х кратным увеличением.

Рис. 4.7 - Увеличение выбранной области с 2х увеличением

4.11 Состав разработанных модулей

Таблица 4.1

Имя файла

Размер, КБ

Тип

Примечание

1

main.cpp

73

.cpp

 Заголовочный файл главного модуля программы. Объявление глобальных переменных.

2

main.h

6

.h

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

3

Filter.cpp

4

.cpp

 Реализация методов класса алгоритмов обработки изображений

4

filter.h

1

.h

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

5

graphics1.cpp

5

.cpp

 Модуль построения графиков для алгоритма с расчетом суммарного попиксельного дифференса

7

graphics2.cpp

3

.cpp

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

9

graphics3.cpp

3

.cpp

 Модуль построения графиков для алгоритма с расчетом средних профилей

11

graphics4.cpp

4

.cpp

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

13

LoadedFiles.cpp

1

.cpp

 Модуль загрузки фрагментов в программу

15

NavigationForm.cpp

3

.cpp

 Реализация методов классов алгоритмов модуля навигации

16

NavigationForm.h

2

.h

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

17

PanoramaMaker.cpp

2

.cpp

 Модуль совмещения фрагментов

18

PanoramaPartEdit.cpp

4

.cpp

Модуль ручной корректировки 

20

PanoramaSize.cpp

4

.cpp

 

22

SaveParams.cpp

10

.cpp

 Модуль сохранения панорамы и координат фрагментов

24

StitchParameters.cpp

1

.cpp

Хранение параметров совмещения алгоритмов

26

ZoomForm.cpp

15

.cpp

 Модуль увеличения области

4.12 Тестирование

На этапе тестирование программного обеспечения системы проверялась корректная работа всех элементов программы и реализованных алгоритмов.

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

Выбор набора фрагментов для эксперимента;

Обработка реализованным в программе алгоритмом совмещения фрагментов;

Сравнение полученного результата с эталонным(собранная в ручном режиме панорама);

Тестирование алгоритма со средними профилями

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

Рис. 4.8 - Результат работы алгоритма(слева) и результат ручной сборки(справа)

Как видно на Рис. Алгоритм со средними профилями работает корректно.

Тестирование алгоритма со степенями жесткости

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

Рис. 4.9 - Результат работы алгоритма со степенями жесткости

Рис. 4.10 - Результат ручной сборки

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

5. Разработка методического обеспечения

5.1 Руководство пользователя

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

Название программного обеспечения: PanoramaMaker

Назначение системы:

Изучение вопросов работы алгоритмов совмещения фрагментов;

Исследование эффективности алгоритмов совмещения фрагментов;

Совмещение фрагментов при формировании панорамного изображения 4мя различными алгоритмами;

Ручная сборка панорамных изображений;

Проведение лабораторных работ по курсу «Обработка изображений».

Состав программного обеспечения:

Пусковой файл PanoramaMaker.exe;

Библиотека работы с графикой libgfl267.dll;

Системные требования программного комплекса:

Операционная система Windows XP (SP2 или выше) / Windows Vista / Windows 7;

Процессор Intel Pentium с тактовой частотой 3 ГГц или лучше;

2Гб оперативной памяти;

Объём памяти видеоадаптера 256 Мб;

500 Мб свободного места на жестком диске;

Клавиатура и мышь.

Запуск программы

Для запуска программы необходимо двойным кликом мыши или клавишей Enter запустить файл PanoramaMaker.exe. После запуска программы появится главное окно:

Рис. 5.1 - Главное окно программы

Обозначения на рисунке:

1 - Главное меню

2 - Рабочая область

3 - Полоса загрузки

Загрузка изображений в программу:

Выбрать меню файл -> открыть папку, появится окно настройки размера панорамы (количества фрагментов):

Рис. 5.2 - Окно настройки количества фрагментов

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

Загрузка координат положения кадров

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

Рис. 5.3 - Пункт главного меню - файл

Сохранение панорамы.

Необходимо выбрать меню файл -> сохранить панораму, где будет необходимо выбрать метод сохранения:

Обрезать по границе крайних кадров (сохранение без черной полосы).

Использовать плавный переход на границе кдаров.

Рис. 5.4 - Параметры сохранения

После выбора параметров сохранения в появившемся окне необходимо ввести имя_файла.bmp, где имя_файла - любое имя файла с панорамой.

Сохранение координат

Для сохранения координат фрагментов необходимо выбрать меню Файл - Сохранить текущие координаты (смотри рис.)

Выход из программы

Для выхода из программы необходимо выбрать меню Файл - Выйти

Просмотр списка загруженных файлов

Рис. 5.5 - Сохранение панорамы

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

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

Автоматическая сшивка фрагментов.

Для автоматической сшивки фрагментов панорамы необходимо выбрать пункт главного меню - сшивка панорамы и дальше выбрать 1 из 4х алгоритмов совмещения фрагментов:

Алгоритм 1 - алгоритм с попиксельным обходом зоны совмещения;

Алгоритм 2 - алгоритм с бинаризацией на основе анализа гистограмм;

Алгоритм 3 - алгоритм с расчетом средних профилей;

Алгоритм 4 - алгоритм с степенями жесткости;

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

Рис. 5.6 - Выбор алгоритма совмещения фрагмента

Ручная корректировка

Необходимо выбрать пункт главного меню - ручное редактирование.

Рис. 5.7 - Окно ручной корректировки положения фрагментов

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

Передвигая указателем мыши

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

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

Редактировать строку - положение меняет активная строка.

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

Редактировать выбранные строки - положение меняют выбранные строки

Редактировать кадры слева - автоматически выбираются все кадры левее активного.

Редактировать все кадры справа - автоматически выбираются все кадры справа.

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

Навигация

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

Рис. 5.8 - Навигация по панораме

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

Увеличение

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

Рис. 5.9 - 2х увеличение выбранного фрагмента

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

Графики

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

В появившемся окне будут построены графики соответствующие последнему отработавшему алгоритму.

Рис. 5.10 - Окно отображения графиков для алгоритма

Обрезание по зоне перекрытия.

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

Рис. 5.11 - Контекстное меню

Фиксация положения кадра.

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

Оценка параметров сшивки

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

5.2 Методика проведения исследований

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

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

Совмещение фрагментов выбранным алгоритмом;

Анализ работы алгоритма;

Экспертная визуальная оценка границ совмещения;

Сравнение обработанного изображения с эталонным изображением;

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

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

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

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

Рис. 5.12 - Формирование эталонного изображения

Совмещения фрагментов выбранным алгоритмом

Для формирования панорамного изображения необходимо выбрать пункт меню «Сшивка Панорам» - и выбрать необходимый алгоритм. После чего дождаться завершения работы алгоритма (в случае выбора алгоритма 1 и 2 время ожидания - увеличенное).

Рис. 5.13 - Результат автоматической сборки алгоритмом 3

Анализ работы алгоритма

Для анализа работы алгоритмов в программе строятся графики для всех вычисляемых в ходе работы алгоритма значениях. Рассмотрим на примере алгоритма 3 (со средними профилями).

Графики средних профилей:

Рис. 5.14 - График средних профилей

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

График «Диференс» на данном графике показывается разница средних профилей по зоне перекрытия с различным смещением по оси Х. Там где разница минимальная (см рис.) - оптимальное с точки зрения алгоритма положение.

Рис. 5.15 - График дифференс для алгоритма 3(со средними профилями)

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

Рис. 5.16 - График дифференс после маски для алгоритма 3(со средними профилями)

Экспертная визуальная оценка границ совмещения

Для оценки зоны совмещения фрагментов необходимо воспользоваться инструментом увеличение (выбрать пункт меню «увеличение» и дальше «2х» или «4х» в зависимости от необходимого увеличения) и выбрать необходимую область, после чего оценить корректность совмещения визуально.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.