SlideShare a Scribd company logo
1 of 24
Download to read offline
Государственное образовательное учреждение высшего профессионального образования
«Московский государственный технический университет
имени Н.Э. Баумана»
(МГТУ им. Н.Э. Баумана)
ФАКУЛЬТЕТ _________Информатикаи Системы управления______________
КАФЕДРА ___________Системы автоматического управления_____________
______________________________________________________________________
Р А С Ч Ё Т Н О - П О Я С Н И Т Е Л Ь Н А Я З А П И С К А
к курсовой работе на тему:
_______________Исследованиеи разработка программного_________________
_______________обеспеченияинтерполяции изображений__________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Студент ___________________________ __________________ ___________________
(Подпись, дата) (И.О.Фамилия)
Руководитель квалификационной работы __________________ __________________
(Подпись, дата) (И.О.Фамилия)
Москва, 2009
2
Содержание
стр.
Обозначения и сокращения.............................................................................................................................................3
Аннотация.................................................................................................................................................................................3
Введение ....................................................................................................................................................................................3
1 Постановка задачи и первичное исследование................................................................................................4
1.1 Постановка задачи ...................................................................................................................................................4
1.2 Оценка современного состояния решаемой научно-технической проблемы ........................4
1.3 Обоснование необходимости проведения работы.................................................................................5
1.4 Назначение и цели создания программного обеспечения ................................................................5
2 Проектирование ПО.........................................................................................................................................................5
2.1 Структура модулей ПО...........................................................................................................................................5
2.2 Постановка задачи на реализацию подсистем АС ..................................................................................6
3 Теоретические исследования.....................................................................................................................................6
3.1 Обоснование направления исследований ..................................................................................................7
3.2 Математическая интерполяция .......................................................................................................................8
3.2.1 Определение .......................................................................................................................................................8
3.2.2 Методы интерполяции..................................................................................................................................9
3.3 Одномерная сплайн-интерполяция................................................................................................................9
3.3.1 Сплайн-функция ...............................................................................................................................................9
3.3.2 Интерполяция сплайном третьей степени..................................................................................... 10
3.3.2.1 Линейный сплайн................................................................................................................................. 11
3.3.2.3 Кубический сплайн.............................................................................................................................. 12
3.4 Двухмерная сплайн-интерполяция ............................................................................................................. 14
3.4.1 Билинейный сплайн.................................................................................................................................... 14
3.4.1.1 Алгоритм ................................................................................................................................................... 14
3.4.1.2 Недостатки метода .............................................................................................................................. 15
3.4.2 Бикубический сплайн ................................................................................................................................. 16
3.4.3 Сравнение билинейной и бикубической интерполяции ........................................................ 17
3.4.4 Билинейное и бикубическое ресемплирование........................................................................... 18
4 Практические результаты и экспериментальные исследования ....................................................... 18
4.1 Изменение размера изображения ................................................................................................................ 18
4.2 Экспериментальные исследования............................................................................................................. 19
4.2.1 Описание программного стенда ........................................................................................................... 19
4.2.1.1 Интерфейс программного стенда..................................................................................................... 20
3
4.2.1.2 Описание разработанной библиотеки........................................................................................... 20
4.2.2 Эксперименты................................................................................................................................................. 21
4.2.2.1 Тесты на качество обработки ........................................................................................................ 21
4.2.2.2 Тесты производительности............................................................................................................ 21
4.3 Обобщение и оценка результатов исследований ................................................................................ 22
Заключение ........................................................................................................................................................................... 23
Список использованных источников...................................................................................................................... 24
Обозначения и сокращения
АС – Автоматизированная система;
Задача АС – Задача автоматизированной системы;
НИР – Научно-исследовательская работа;
ПО – Программное обеспечение;
ТЗ – Техническое задание на автоматизированную систему;
Аннотация
В данной работе рассмотрена задача разработки программного обеспечения
интерполяции изображений.
Для поставленной задачи была разработана структура системы, модулей и
схемы их взаимодействия. Предложена среда разработки и реализации
автоматизированной системы. Сделан выбор технических и трудовых средств и
ресурсов, обслуживающих автоматизированную систему.
Исследованы и приведены алгоритмы решения задачи интерполяции
изображений. Алгоритмизированы три метода решения данной задачи. Проведены
их экспериментальные исследования зависимости производительности от размера
изображения и метода обработки. Сделаны выводы по полученным результатам и
предложены наиболее оптимальные алгоритмы обработки.
На основании экспериментов были сделаны выводы о производительности
алгоритмов.
Введение
Рост интенсивного развития человеческой деятельности в области
современных информационных технологий влечет за собой необходимость
упрощения способов идентификации и обработки различных данных. На
4
сегодняшний день одним из актуальных классов задач, являются задачи
автоматического обнаружения и распознания данных, содержащихся на
графических изображениях. Результаты решения подобного класса задач могут
быть использованы в современных системах компьютерного зрения: системы
идентификации изображений, зрение роботов, компьютерная анимация,
видеосъемка (автоматическое слежение за движущимися объектами).
В связи с последними достижениями в области развития интеллектуальных
разработок, появляется возможность решения многих задач путем создания
прикладных систем интеллектуального анализа данных.
Таким образом, данная работа посвящена исследованию методов обработки
изображений.
1 Постановка задачи и первичное исследование
1.1 Постановка задачи
Наименование задачи (НИР): Исследование и разработка программного
обеспечения интерполяции изображений.
Входные данные: Изображение, подлежащее обработке.
Выходные данные: Интерполированное изображение.
Задача заключается в том, чтобы разработать программное обеспечение (ПО)
задачей которого будет обработка изображений для последующего анализа.
В рамках задачи дипломного проекта1 эта задача является связующим звеном
между подсистемой получения и предварительной обработки изображения и
подсистемой анализа и распознавания.
1.2 Оценка современного состояния решаемой научно-технической
проблемы
Исследование современного рынка решений поставленной задачи приводит к
выводу о том, что существует множество ПО для решения подобной задачи. Однако,
во многих случаях интеграция с подсистемами затруднена, как вследствие этого
необходима разработка собственного модуля для обработки изображений.
Общий анализ технологической базы существующих прикладных решений
приводит к следующим выводам:
1 Под Системой понимается «Автоматизированная система контроля доступом» подробное описание
назначения и целей создания АС имеется в ТЗ к дипломному проекту.
5
 Используется большое количество методов и алгоритмов интерполяции
изображений.
 Обеспечивается высокое качество и производительность.
 Решения не обладают универсальностью, используются в контексте
подсистем ПО.
Таким образом, можно сделать вывод о том, существующие системы обладают
хорошей технологической базой, но не обладают достаточной универсальностью. В
существующих ПО нет модульного решения для интеграции в существующую
задачу.
1.3 Обоснование необходимости проведения работы
В результате оценки современного состояния решаемой задачи мы приходим
к выводу о том, что существующие решения, не дают полной возможности (без
доработок) произвести интеграцию с реализованной подсистемой.
Проведение НИР в области исследования и разработки программного
обеспечения интерполяции изображений, которое будет обладать модульной
структурой, является в рамках задачи дипломного проектирования очень важной
задачей.
1.4 Назначение и цели создания программного обеспечения
Назначение ПО – интерполяция входящего изображения.
Основная цель создания ПО – создания модуля для системы распознавания
изображений.
Создание данного ПО, как модуля системы, решает конкретные задачи:
 Повышает скорость последующей обработки изображений;
 Повышает эффективность распознавания изображения;
 Расширяет функционал системы.
2 Проектирование ПО
2.1 Структура модулей ПО
В автоматизированную систему должны входить следующие модули:
 библиотека типов;
 библиотека расширенной работы с массивами;
6
 библиотека обработки изображений;
 библиотека основных функций;
 библиотека быстрой работы с изображениями;
 библиотека построения линейных сплайнов;
 библиотека построения двухмерных сплайнов;
Необходимая взаимосвязь компонентов приложения изображена в диаграмме
компонентов (см. рисунок 2.1) по нотации UML 2.0 [1].
Interpolate Image
«library»
ImgLibTypes
«library»
ImgLibArrayExt
«library»
ImgLibImageExt
«library»
ImgLibImpl
«library»
QPixels
«library»
SplineLibLinear
«library»
SplineLibBilinear
Рисунок 2.1. Взаимосвязь модулей приложения
2.2 Постановка задачи на реализацию подсистем АС
В поставленной задаче НИР стоит разработка ПО интерполяции изображений.
Будем реализовывать поставленную задачу таким образом, чтобы соблюдать
модульную структуру Системы.
Наибольший практический интерес представляет собой задача билинейной
интерполяции, входящая в модуль «Библиотека обработки изображений».
3 Теоретические исследования
Основная задача исследований заключается в изучении современных
алгоритмов интерполяции изображений и их реализация в ПО.
7
В данном разделе отчета о НИР рассматриваются методы интерполяции
изображений. Таким образом, далее следует описание проведенных исследований и
разработанных алгоритмов для решения задачи разработки ПО.
3.1 Обоснование направления исследований
Все большее распространение получили системы автоматизированного ввода
информации через различные типы сканеров, а также цифровые фото- и
видеокамеры. При этом по разрешающей способности такие системы ввода вполне
приближаются к зрению человека или животных, а с учетом быстродействия
ближайшей технической моделью глаза, очевидно, являются видео- и цифровые
фотокамеры. Так ПЗС матрица цифровой фотокамеры обеспечивает разрешение до 3
млн. пикселей на кадр, а современным высокопроизводительным компьютерам
вполне доступна несложная обработка в реальном масштабе времени.
Под обработкой изображений следует понимать совокупность методов и
задач, где входной информацией являются изображения [2]. Круг решаемых задач
очень широк и используется в различных областях, таких как математика,
нейробиология, оптическая физика и других. Можно назвать две основные
прикладные области, активно развиваемые в последнее время, это «Машинное
зрение» и «Компьютерное зрение». Данные области достаточно близки и часто
пересекаются по классу задач, поэтому иногда их объединяют в одну (см. рисунок
3.1).
Современные исследования и развития данных областей, позволяют
сформулировать их основные задачи [2].
 Обработка изображений фокусируется на обработке двумерных (2D)
изображений.
 Машинное зрение - это решение промышленных и производственных задач
(робототехника и прочее).
 Компьютерное зрение включает в себя класс задач связанных с
восстановлением трехмерного изображения (3D) по входным двумерным (2D)
изображениям.
В рамки задач по обработке изображений входят и задачи преобразования
размеров изображения, и соответственно их интерполяция.
Интерполяция изображений происходит во всех цифровых фотографиях на
определённом этапе, например, при масштабировании. Она происходит всякий раз,
8
когда вы изменяете размер или развёртку изображения из одной сетки пикселей в
другую. Изменение размера изображения необходимо, когда вам нужно увеличить
или уменьшить число пикселей, тогда как изменение положения может происходить
в самых различных случаях: исправление искажений объектива, смена перспективы
или поворот изображения.
3.2 Математическая интерполяция
Интерполяция – в вычислительной математике способ нахождения
промежуточных значений величины по имеющемуся дискретному набору известных
значений.
Часто в научных и инженерных расчетах приходится оперировать наборами
значений, полученных экспериментальным путём или методом случайной выборки.
На основании этих наборов данных требуется построить график функции, на
которую могли бы с высокой точностью попадать другие получаемые значения.
Такая задача называется аппроксимацией кривой. Интерполяцией называют такую
разновидность аппроксимации, при которой кривая построенной функции проходит
точно через имеющиеся точки данных.
Также существует близкая к интерполяции задача, которая заключается в
аппроксимации какой-либо сложной функции другой, более простой функцией. В
случае, когда некоторая функция слишком сложна для производительных
вычислений, можно попытаться вычислить её значение в нескольких точках, а по
ним построить, то есть интерполировать, более простую функцию. Использование
упрощенной функции не позволяет достичь первоначальной точности, но в
определенных классах задач достигнутый выигрыш в простоте и скорости
вычислений перевешивает получаемую погрешность в результатах.
Существует также совершенно другая разновидность математической
интерполяции, известная под названием «интерполяция операторов».
3.2.1 Определение
Рассмотрим систему несовпадающих точек  0,1,...,ix i N из некоторой
области D . Пусть значения функции f известны только в этих точках
 , 1,...,i iy f x i N  (3.1)
9
Задача интерполяции состоит в поиске такой функции F из заданного класса
функций, что
  , 1,...,i iF x y i N  , (3.2)
где
 Точки ix называют узлами интерполяции, а их совокупность —
интерполяционной сеткой;
 Пары  ,i ix y называют точками данных или базовыми точками;
 Разность между «соседними» значениями 1i i ix x x   — шагом
интерполяционной сетки, который может быть как переменным, так и
постоянным;
 Функцию  F x — интерполирующей функцией.
3.2.2 Методы интерполяции
 Интерполяция полиномами
 Линейная интерполяция;
 Интерполяционная формула Ньютона;
 Метод конечных разностей;
 Полином Лагранжа;
 Сплайн-функция;
 Обратное интерполирование
 Полином Лагранжа;
 Обратное интерполирование по формуле Ньютона;
 Обратное интерполирование по формуле Лагранжа;
 Рациональная интерполяция;
 Тригонометрическая интерполяция.
Методы сплайн интерполяции подробно рассмотрены в книге [3].
3.3 Одномерная сплайн-интерполяция
3.3.1 Сплайн-функция
Сплайн - это агрегатная функция, совпадающая с более простой функцией на
каждом элементе разбиения своей области определения [4].
10
Сплайн-функция является особым видом кусочно-непрерывного полинома. В
монографии [5] указано, что интерполяция сплайн-функция является более
предпочтительным полиномиальной интерполяции, т.к. ошибка может быть
намного меньше, даже при низкой степени многочлена сплайн-функции.
Следовательно, позволяет избежать проблем возникающих при высокой степени
аппроксимирующего полинома2.
Таким образом, сформулируем задачу интерполяции.
Пусть дано 1n  точек ix таких, что
0 1 1... n nx x x x    , (3.3)
с известными 1n  значениями ( )i iy x .
Необходимо определить сплайн-функцию степени n
 
   
   
   
0 0 1
1 1 2
1 1 1
, ,
, ,
...
, ,n n
S x x x x
S x x x x
S x
S x x x x 
 


 

 
, (3.4)
где каждая из функций  iS x является многочленом степени K .
Рассмотрим интерполяцию сплайном третьей степени.
3.3.2 Интерполяция сплайном третьей степени
В основе данной сплайн-интерполяции лежит следующий принцип. Интервал
интерполяции разбивается на небольшие отрезки, на каждом из которых функция
задается полиномом третьей степени. Коэффициенты полинома подбираются таким
образом, чтобы выполнялись определенные условия, которые зависят от метода
интерполяции. Общие требования для всех типов сплайнов третьего порядка:
 Непрерывность функции;
 Прохождение через все заданные точки.
К дополнительным требованиям относятся:
 Линейность функции между узлами;
 Непрерывность высших производных;
 И прочее.
2 Berrut, Jean-Paul, Trefethen, Lloyd N. Barycentric Lagrange interpolation // SIAM Review 46. –
pp.501–517. – ISSN 1095-7200
11
Как уже было показано, основными достоинствами сплайн-интерполяции
являются её устойчивость и малая трудоемкость. Системы линейных уравнений,
которые требуется решать для построения сплайнов, хорошо обусловлены, что
позволяет получать коэффициенты полиномов с высокой точностью. В результате
при очень больших значениях N вычислительная схема не теряет устойчивость.
Построение таблицы коэффициентов сплайна требует  N операций, а
вычисление значения сплайна в заданной точке - всего лишь   log N .
Рассмотрим некоторые виды кубических сплайнов, т.е. сплайны, являющиеся
кусочно-кубическими функциями.
3.3.2.1 Линейный сплайн
Линейный сплайн - это сплайн, составленный
из полиномов первой степени, т.е. из отрезков
прямых линий. Точность интерполяции линейными
сплайнами невысока, кроме того они не
обеспечивают непрерывности первых
производных. Однако в некоторых случаях кусочно-
линейная аппроксимация функции может оказаться
предпочтительнее, чем аппроксимация более
высокого порядка. Например, линейный сплайн
сохраняет монотонность переданного в него набора
точек.
На рисунке 3.1 приведен пример линейного
сплайна, интерполирующего функцию    cos 0.5f x x   на отрезке  1,1 .
3.3.2.2 Сплайн Эрмита
Сплайн Эрмита - это сплайн третьего порядка, производная которого
принимает в узлах сплайна заданные значения. В каждом узле сплайна Эрмита
задано не только значение функции, но и значение её первой производной. Сплайн
Эрмита имеет непрерывную только первую производную.
На рисунке 3.2.а приведен пример сплайна Эрмита, интерполирующего
функцию    cos 0.5f x x   на отрезке  1,1 . Можно заметить, что точность
интерполяции значительно лучше, чем у линейного сплайна.
Рисунок 3.1. Аппроксимация
линейным сплайном
12
Рисунок 3.2а и 3.2б. Аппроксимация сплайном Эрмита (слева) и кубическим
сплайном (справа)
3.3.2.3 Кубический сплайн
Кубический сплайн – это такой сплайн, обеспечивающий непрерывность
первой и второй производной в каждой точке. Кубический сплайн задается
значениями функции в узлах и значениями производных на границе отрезка
интерполяции (либо первых, либо вторых производных).
Если известно точное значение первой производной на обеих границах, то
такой сплайн называют фундаментальным. Его погрешность интерполяции равна
 4
h , где h - это шаг заданной дискретной функции, т.е. 1i ix x  .
Если значение первой (или второй) производной на границе неизвестно, то
можно задать т.н. естественные граничные условия    '' '' 0S A S B  , и получить
естественный сплайн. Погрешность интерполяции естественным сплайном
составляет  2
h . Максимум погрешности наблюдается в окрестностях граничных
узлов, во внутренних узлах точность интерполяции значительно выше.
Ещё одним видом граничного условия, которое можно использовать, если
неизвестны граничные производные функции, является условие типа "сплайн,
завершающийся параболой". В этом случае граничный отрезок сплайна
представляется полиномом второй степени вместо третьей (для внутренних
отрезков по-прежнему используются полиномы третьей степени). В ряде случаев
это обеспечивает большую точность, чем естественные граничные условия.
Так же можно сочетать различные типы граничных условий на разных
границах. Обычно так имеет смысл делать, если у нас есть только часть информации
13
о поведении функции на границе (например, производная на левой границе - и
никакой информации о производной на правой границе).
На рисунке 3.2б приведен пример кубического сплайна, интерполирующего
   cos 0.5f x x   на отрезке  1,1 . Можно видеть, что точность интерполяции
близка к точности сплайна Эрмита.
Недостатком кубических сплайнов является то, что они склонны
осциллировать в окрестностях точки, существенно отличающейся от своих соседей.
На рисунке 3.3. приведен набор точек, содержащий один выброс. Зеленым цветом
обозначен кубический сплайн с естественными граничными условиями. На отрезках
интерполяции, граничащих с выбросом, сплайн заметно отклоняется от
интерполируемой функции - сказывается влияние выброса.
Для устранения данного недостатка используют сплайн Акимы.
Б.2.2.4 Сплайн Акимы
Сплайн Акимы - это особый вид
сплайна, устойчивый к выбросам. На
рисунке 3.3. красным цветом
обозначен сплайн Акимы. Можно
заметить, что, в отличие от
кубического сплайна, сплайн Акимы в
меньшей мере подвержен влиянию
выбросов - на отрезках, граничащих с
выбросом, практически отсутствуют
признаки осцилляции.
Важным свойством сплайна Акимы является его локальность - значения
функции на отрезке  1,i ix x  зависят только от значений 2 1 1 2 2, , , , ,i i i i i if f f f f f     .
Вторым свойством, которое следует принимать во внимание, является
нелинейность интерполяции сплайнами Акимы - результат интерполяции суммы
двух функций не равен сумме интерполяционных схем, построенных на основе
отдельных функций.
Для построения сплайна Акимы требуется не менее 5 точек. Во внутренней
области (т.е. между 2 3 3, ,..., Nx x x  при нумерации точек от 0 до 1N  ) погрешность
интерполяции имеет порядок  2
h .
Рисунок 3.3. Аппроксимация сплайном Акимы
14
В данном разделе приведены не все существующие виды сплайнов, большое
количество информации можно найти в литературе [3], [4] и [5].
3.4 Двухмерная сплайн-интерполяция
Двухмерная интерполяция имеет ряд особенностей, отличающих её от
одномерного случая [6]. Главной такой особенностью является то, что подавляющее
большинство алгоритмов двухмерной интерполяции может быть применено только
на наборе точек специального вида - на прямоугольной сетке, ориентированной по
осям координат. Именно на такой сетке могут быть построены два наиболее важных
типа интерполирующих функций: билинейный сплайн и бикубический сплайн.
3.4.1 Билинейный сплайн
Билинейная функция - это функция двух аргументов t и u , которая при
фиксированном значении t линейна по u и наоборот. Билинейный сплайн является
двухмерным обобщением одномерного линейного сплайна и имеет те же
достоинства и недостатки. Он составляется из билинейных функций, определенных
на каждой ячейке сетки так, что в узлах сетки они принимают предписанные
значения. Этот способ интерполяции хорош своей простотой и быстродействием.
Основной недостаток - разрывность производной интерполирующей функции на
границах ячеек сетки. Также можно отметить сравнительно невысокую точность
такой интерполяционной схемы.
3.4.1.1 Алгоритм
В вычислительной математике билинейной интерполяцией называют
расширение линейной интерполяции для функций в двух переменных. Ключевая
идея заключается в том, чтобы провести обычную линейную интерполяцию сначала
в одном направлении, затем в другом.
Допустим, что необходимо интерполировать значение функции ( , )f x y в
точке  ,P x y . Для этого необходимо знать значения функций в (окружающих P)
точках        11 1 1 12 1 2 21 2 1 22 2 2, , , , ,Q x y Q x y Q x y Q x y    . Первым шагом
интерполируется (линейно) значение вспомогательных точек R1 и R2 вдоль оси
абсцисс, где    1 1 2 2, ; ,R x y R x y  :
15
2 1
1 11 21
2 1 2 1
2 1
2 12 22
2 1 2 1
( ) ( ) ( )
( ) ( ) ( )
x x x x
f R f Q f Q
x x x x
x x x x
f R f Q f Q
x x x x
 
 
 
 
 
 
(3.5)
Рисунок 3.43
Теперь проводится линейная интерполяция между вспомогательными
точками R1 и R2.
2 1
1 2
2 1 2 1
( ) ( ) ( )
y y y y
f P f R f R
y y y y
 
 
 
(3.6)
Это и есть приблизительное значение функции в точке P, т.е. ( , )f x y .
11 21
2 2 1 2
2 1 2 1 2 1 2 1
12 22
2 1 1 1
2 1 2 1 2 1 2 1
( ) ( )
( , ) ( )( ) ( )( )
( )( ) ( )( )
( ) ( )
( )( ) ( )( )
( )( ) ( )( )
f Q f Q
f x y x x y y x x y y
x x y y x x y y
f Q f Q
x x y y x x y y
x x y y x x y y
      
   
     
   
(3.7)
Результат билинейной интерполяции не зависит от порядка шагов. Возможно,
сначала интерполировать между известными точками вдоль оси ординат и затем,
получив два вспомогательных значения, интерполировать между ними вдоль оси
абсцисс.
3.4.1.2 Недостатки метода
Главным минусом билинейной интерполяции при масштабировании
изображений является тот факт, что при увеличении в N раз изображения размером
3 Четыре красные точки представляют собой известные значения функции. Значение в зеленой точке
должно быть интерполировано.
16
W на H пикселей в результате будет получено изображение размером не NW на NH
пикселей, а (N(W − 1) + 1) на (N(H − 1) + 1) пикселей.
Связано это с тем, что в исходном изображении, например, по горизонтали
имеется W точек, т.е. (W − 1) смежных пар. При увеличении изображения в N раз
между каждой парой основных точек вставляется по (N − 1) дополнительных точек
(т.е. при увеличении вдвое между основными точками вставляется еще по одной,
при увеличении втрое - по две и т.д.). Итого в результате ширина результирующего
изображения будет равна сумме количества основных и дополнительных точек:
    1 1 1 1W W N N W      .
Проще говоря, для последнего пикселя (в каждой строке и столбце) исходного
изображения не находится пары, с которой можно было бы провести
интерполирование.
3.4.2 Бикубический сплайн
В ряде случаев оказывается недостаточно точности, которую обеспечивают
билинейные сплайны. Разрывность производной также часто оказывается
мешающим фактором. В таких случаях можно применить бикубический сплайн,
который гарантирует непрерывность первых производных dS dx и dS dy , а также
непрерывность смешанной производной 2
d S dxdy.
Здесь можно проследить аналогию с одномерными сплайнами (смотри
раздел 3.2), однако есть и различия. Кубический сплайн гарантирует непрерывность
первой и второй производных функции. Бикубический сплайн гарантирует
непрерывность только градиента и смешанной производной, а непрерывность
вторых производных 2 2
d S dx и 2 2
d S dy не гарантируется.
Для построения бикубического сплайна требуются значения функции в узлах
сетки, а также значения её градиента и смешанной производной. При наличии этой
информации, мы можем сразу приступить к вычислению коэффициентов сплайна.
Однако обычно имеются только значения функции, а значения градиента и
смешанной производной требуется вычислять самостоятельно на их основе.
Например, используя разностные схемы.
Бикубическая интерполяция часто используется в обработке изображений,
давая более качественное изображение по сравнению с билинейной интерполяцией.
17
3.4.3 Сравнение билинейной и бикубической интерполяции
Результат бикубической интерполяции функции заданной на сетке
[0,3] [0,3] . Данную сетку можно рассматривать как состоящую из 9 единичных
квадратов. Черными точками обозначены известные значения функции до
интерполяции. Цветом обозначены интерполированные значения в каждой точке
полученного изображения.
Результат билинейной интерполяции на тех же входных данных. Частные
производные не являются непрерывными и терпят разрыв на границах квадратов.
Рисунок 3.5а и 3.5б. Результат бикубической интерполяции (слева) и
результат билинейной интерполяции (справа)
Matlab code: Билинейная интерполяция
[Xcoarse, Ycoarse] = meshgrid([0 1 2 3], [0 1 2 3]);
[Xfine, Yfine] = meshgrid(linspace(0,3,1500), linspace(0,3,1500));
DataCoarse = [ 1 2 4 1; ...
6 3 5 2; ...
4 2 1 5; ...
5 4 2 3];
DataBilinearFine = interp2(Xcoarse, Ycoarse, DataCoarse, Xfine, Yfine, 'bilinear');
figure
surf(Xfine, Yfine, DataBilinearFine); shading flat; colormap(jet); view(0, 90)
hold on; plot3(Xcoarse, Ycoarse, 10*ones(size(Xcoarse)), 'k.', 'MarkerSize', 20)
colorbar
print -dpng -r300 BilinearInterpolExample.png
Matlab code: Бикубическая интерполяция
[Xcoarse, Ycoarse] = meshgrid([0 1 2 3], [0 1 2 3]);
[Xfine, Yfine] = meshgrid(linspace(0,3,3000), linspace(0,3,3000));
DataCoarse = [ 1 2 4 1; ...
6 3 5 2; ...
4 2 1 5; ...
5 4 2 3];
18
DataBicubicFine = interp2(Xcoarse, Ycoarse, DataCoarse, Xfine, Yfine, 'bicubic');
figure
surf(Xfine, Yfine, DataBicubicFine); shading flat; colormap(jet); view(0, 90)
hold on; plot3(Xcoarse, Ycoarse, 10*ones(size(Xcoarse)), 'k.', 'MarkerSize', 20)
colorbar
print -dpng -r300 BicubicInterpolationExample.png
3.4.4 Билинейное и бикубическое ресемплирование
Основной задачей, которая решается с помощью двухмерной интерполяции,
является ресемплирование. Эта задача, которая возникает, когда имеются значения
функции на регулярной сетке размером 1 1M N узлов, и требуется перейти от этой
сетки к сетке размером 2 2M N узлов, покрывающей ту же область, и вычислить
значения функции на новой сетке. При этом новая сетка может быть как более, так и
менее плотная, чем старая.
Ресемплирование - это получение по известным значениям в одних точках
значений функции в других точках, т.е. задача интерполяции. Но данный случай
является особым - требуется вычислять значение функции не в произвольных
точках, а в узлах сетки, и вычисления проводятся только один раз, после чего мы
получаем новую сетку и больше не возвращаемся к ресурсоемкой интерполяции.
Так как двухмерный сплайн может быть билинейным или бикубическим, так
и ресемплирование делится на билинейное и бикубическое.
Алгоритмы двухмерной интерполяции и их математическое описание
подробно рассмотрены в литературе [6].
4 Практические результаты и экспериментальные исследования
4.1 Изменение размера изображения
Изменять размер изображения, в первую очередь необходимо для его
последующей обработки [7]. В поставленной задаче в большинстве случаев
необходимо уменьшать изображение, в данной главе рассмотрим общие принципы
интерполяции изображений.
Как уже отмечалось выше, интерполяция - это пространственный (или
временной) прогноз значений неизвестных значений пикселей между истинными
значениями пикселей. Например, для изменения размеров изображений
используется один из методов интерполяции. Методы двумерной интерполяции
используются также при повороте изображений [8].
19
На рисунках 4.1 и 4.2 приведены результаты интерполяции изображения
небольшого исходного размера. Как видно из результатов, наиболее гладкое
получается изображение интерполированное сплайном Акимы.
Рисунок 4.1а и 4.1б. Исходное изображение (слева) и интерполированное
билинейным сплайном (справа)
Рисунок 4.2а и 4.2б. Интерполяция изображения бикубическим (слева) и акима
сплайном (справа)
4.2 Экспериментальные исследования
В данной главе приводятся проведенные экспериментальные исследования
разработанных и исследованных методов интерполяции. Эксперименты будут
проводиться в искусственных условиях с программным изменением параметров
изображений, таких как яркость, шум и геометрические искажения.
4.2.1 Описание программного стенда
Для проведения экспериментов был разработан программный стенд,
позволяющий проводить эксперименты. Программный стенд является интерфейсом
к разработанным модулям библиотеки.
20
4.2.1.1 Интерфейс программного стенда
Рисунок 4.3. Интерфейс программного стенда
Программный стенд позволяет выполнять интерполяцию изображения
различными алгоритмами. Программный стенд так же позволяет выбирать размер
будущего изображения. Одна из основных оценочных характеристик – измерение
производительности (время выполнения обработки), так же добавлена в
возможности программного стенда.
4.2.1.2 Описание разработанной библиотеки
В процессе работы над данной задачей была разработана специальная
библиотека «ImgLib».
Данная библиотека позволяет совершать большое количество действий с
массивами, изображениями, объявленными типами. В библиотеку входят 4 модуля:
 ImgLibTypes (Variables, Constantes and Types)
В данном модуле объявлены все используемые переменные, константы и
типы, а также функции работы с типами;
 ImgLibImageExt (Image Extension Works)
В данном модуле содержатся процедуры и функции для расширенных
операций с изображениями;
 ImgLibArrayExt (Array Extension Works)
В данном модуле содержатся процедуры и функции для расширенных
операций с изображениями;
 ImgLibImpl (Implementation)
21
В данном модуле содержится основные процедуры и функции для обработки
изображений и распознаванию.
4.2.2 Эксперименты
Учитывая особенности поставленной задачи, тестирование разработки можно
проводить в искусственных условиях.
4.2.2.1 Тесты на качество обработки
Приведение примеров тестов на качество обработки очень громоздко. Для
количественной оценки качественного критерия необходимо производить
экспертный анализ, что не являлось возможным в ходе выполнения данной работы.
4.2.2.2 Тесты производительности
4.2.2.2.1 Влияние метода интерполяции на производительность
Рисунок 4.4. Гистограмма влияния метода интерполяции на время обработки
Методика проведения данного эксперимента состоит в том, что мы просто
берем изображение и интерполируем их разными методами до большого размера
(3000 пикселей). Усредняя значение, получили следующую гистограмму.
Полученная характеристика очень логична, т.к. чем сложнее математическое
описание сплайна, тем сложнее и дольше его вычисление.
22
4.2.2.2.2 Влияние размера изображения и метода интерполяции на производительность
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
1000х1000 2000x2000 3000х3000
Среднееинтерполяцииизображения,мс
Размерность интерполированного изображения, пиксель
2
Влияние размера изображения на время обработки алгоритма
Линейный сплайн
Кубический сплайн
Акима сплайн
Рисунок 4.5. Гистограмма влияния метода интерполяции на время обработки
Методика проведения данного эксперимента состоит в том, что мы просто
берем изображение и интерполируем их разными методами до большого размера
(1000, 2000 и 3000 пикселей). Усредняя значение, получили следующую
гистограмму. Полученная характеристика очень логична, т.к. чем сложнее
математическое описание сплайна, тем сложнее и дольше его вычисление.
4.3 Обобщение и оценка результатов исследований
В результате проведенных экспериментов была исследована зависимость
эффективность и качество интерполяции от влияния различных параметров и
настроек. Следовательно, основываясь на результатах экспериментов можно
предложить наиболее эффективные настройки и методы интерполяции.
Рекомендуется:
 Использовать интерполяцию сплайн функцией Акима для небольших по
размеру изображений;
 Использовать билинейную интерполяцию в случае больших изображений,
если не требуется добиваться отличного качества изображения;
В результате проведенных исследований можно сделать вывод о том, что
билинейная интерполяция обладает хорошими качественными результатам
интерполяции и отличной скоростью работы.
23
Таким образом, в результате проведенных исследований были детально
исследованы алгоритмы интерполяции изображений. Проведены
экспериментальные исследования и произведено тестирование реализованного ПО.
Заключение
Проведенная НИР в области интерполяции изображений дает возможности
для дальнейшего продолжения разработки Системы.
В данной работе исследовались и разрабатывались методы и алгоритмы
интерполяции изображений. В результате проведенных исследований были
алгоритмизированы три метода решения данной задачи и проведены их
экспериментальные исследования зависимости производительности от размера
изображения.
На основании экспериментов были сделаны выводы о том, что билинейная
интерполяция обладает хорошими качественными результатам интерполяции и
отличной скоростью работы.
Для поставленной задачи дипломного проекта («Разработка системы
контроля доступом на основании системы распознавания номерных знаков») был
разработан модуль интерполяции изображений.
Одним из важнейших плюсов данного модуля является то, что в отличие от
других он легко интегрируются с Системой.
В дальнейшем будет сделана попытка углубиться в исследования и
продолжение разработки Системы с целью внедрения новых разработанных
технологий.
24
Список использованных источников
1. Рамбо Джеймс, Блаха Майкл. UML 2.0. Объектно-ориентированное
моделирование и разработка. – 2-е изд. – 2007. – 544 с. – ISBN 5-469-00814-2.
2. Pedram Azad, Tilo Gockel, Rudiger Dillmann. Computer Vision - Principles and
Practice // Elektor International Media BV. – ISBN 0905705718. – 2008. –
http://ivt.sourceforge.net/book.html.
3. Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее приложения. – М.: Мир,
1972. – 318 с.
4. Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. – М.:
Наука, 1980. – 352 с.
5. Быстрицкий В. Двухмерная сплайн-интерполяция. –
http://alglib.sources.ru/interpolation/spline2d.php
6. R. Keys. Cubic convolution interpolation for digital image processing // IEEE
Transactions on Signal Processing, Acoustics, Speech, and Signal Processing 29:
1153. – 1981. – http://dx.doi.org/10.1109%2FTASSP.1981.1163711
7. Роджерс Д., Адамс Дж. Математические основы машинной графики. – М.: Мир,
2001. – ISBN 5-03-002143-4
8. Журавель И.М. и др. Краткий курс теории обработки изображений. – Интернет
университет информационных технологий. –
http://matlab.exponenta.ru/imageprocess/book2/index.php

More Related Content

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

ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...
ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...
ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...ITMO University
 
виртуальные маркетинговые исследования
виртуальные маркетинговые исследованиявиртуальные маркетинговые исследования
виртуальные маркетинговые исследованияclub-inno
 
приказ оо 863 от 17 11-2010 асм икт 2-й этап
приказ оо 863 от 17 11-2010 асм икт 2-й этапприказ оо 863 от 17 11-2010 асм икт 2-й этап
приказ оо 863 от 17 11-2010 асм икт 2-й этапAirat Yusupov
 
Getting Started to the System Design
Getting Started to the System DesignGetting Started to the System Design
Getting Started to the System DesignAnatoly Simkin
 
использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...Иван Иванов
 
Лабораторная работа № 4. МАПО - диаграммы uml
Лабораторная работа № 4. МАПО - диаграммы umlЛабораторная работа № 4. МАПО - диаграммы uml
Лабораторная работа № 4. МАПО - диаграммы umlPresentationCreater
 
методы моделирования и оптимизации конспект лекций
методы моделирования и оптимизации конспект лекцийметоды моделирования и оптимизации конспект лекций
методы моделирования и оптимизации конспект лекцийИван Иванов
 
А.Левенчук -- плохая модульность
А.Левенчук -- плохая модульностьА.Левенчук -- плохая модульность
А.Левенчук -- плохая модульностьAnatoly Levenchuk
 
Цуру Роботикс, Никита Родиченко
Цуру Роботикс, Никита РодиченкоЦуру Роботикс, Никита Родиченко
Цуру Роботикс, Никита РодиченкоSkolkovo Robotics Center
 
Osnovy postroen avtomatiz_inform_sistem_2009
Osnovy postroen avtomatiz_inform_sistem_2009Osnovy postroen avtomatiz_inform_sistem_2009
Osnovy postroen avtomatiz_inform_sistem_2009Anastasia Snegina
 
ЗАО ИК НЕОТЕК МАРИН
ЗАО ИК НЕОТЕК МАРИНЗАО ИК НЕОТЕК МАРИН
ЗАО ИК НЕОТЕК МАРИНNEOTECHMARINE812
 
Микроразметка в Google и Яндекс. Как помочь клиенту и роботу
Микроразметка в Google и Яндекс. Как помочь клиенту и роботуМикроразметка в Google и Яндекс. Как помочь клиенту и роботу
Микроразметка в Google и Яндекс. Как помочь клиенту и роботуSiteclinic
 
Микроразметка - улучшения связи сайта с пользователями и роботами
Микроразметка - улучшения связи сайта с пользователями и роботамиМикроразметка - улучшения связи сайта с пользователями и роботами
Микроразметка - улучшения связи сайта с пользователями и роботамиЕвгений Аралов
 

Similar to Исследование и разработка программного обеспечения интерполяции изображений (20)

ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...
ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...
ЦИФРОВАЯ МИКРОСКОПИЯ ОТ НАНО ДО МАКРО С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ АНАЛИЗА ИЗОБРА...
 
виртуальные маркетинговые исследования
виртуальные маркетинговые исследованиявиртуальные маркетинговые исследования
виртуальные маркетинговые исследования
 
магистратура итс (09.04.01)
магистратура итс (09.04.01)магистратура итс (09.04.01)
магистратура итс (09.04.01)
 
приказ оо 863 от 17 11-2010 асм икт 2-й этап
приказ оо 863 от 17 11-2010 асм икт 2-й этапприказ оо 863 от 17 11-2010 асм икт 2-й этап
приказ оо 863 от 17 11-2010 асм икт 2-й этап
 
лекция 2 (4часа)
лекция 2 (4часа)лекция 2 (4часа)
лекция 2 (4часа)
 
Getting Started to the System Design
Getting Started to the System DesignGetting Started to the System Design
Getting Started to the System Design
 
лекция 6 (2часа)
лекция 6 (2часа)лекция 6 (2часа)
лекция 6 (2часа)
 
лекция 2 (4часа)
лекция 2 (4часа)лекция 2 (4часа)
лекция 2 (4часа)
 
использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...
 
неотек
неотекнеотек
неотек
 
Лабораторная работа № 4. МАПО - диаграммы uml
Лабораторная работа № 4. МАПО - диаграммы umlЛабораторная работа № 4. МАПО - диаграммы uml
Лабораторная работа № 4. МАПО - диаграммы uml
 
методы моделирования и оптимизации конспект лекций
методы моделирования и оптимизации конспект лекцийметоды моделирования и оптимизации конспект лекций
методы моделирования и оптимизации конспект лекций
 
Stat 7 alpha
Stat 7 alphaStat 7 alpha
Stat 7 alpha
 
А.Левенчук -- плохая модульность
А.Левенчук -- плохая модульностьА.Левенчук -- плохая модульность
А.Левенчук -- плохая модульность
 
Цуру Роботикс, Никита Родиченко
Цуру Роботикс, Никита РодиченкоЦуру Роботикс, Никита Родиченко
Цуру Роботикс, Никита Родиченко
 
Osnovy postroen avtomatiz_inform_sistem_2009
Osnovy postroen avtomatiz_inform_sistem_2009Osnovy postroen avtomatiz_inform_sistem_2009
Osnovy postroen avtomatiz_inform_sistem_2009
 
магистратура итс
магистратура итсмагистратура итс
магистратура итс
 
ЗАО ИК НЕОТЕК МАРИН
ЗАО ИК НЕОТЕК МАРИНЗАО ИК НЕОТЕК МАРИН
ЗАО ИК НЕОТЕК МАРИН
 
Микроразметка в Google и Яндекс. Как помочь клиенту и роботу
Микроразметка в Google и Яндекс. Как помочь клиенту и роботуМикроразметка в Google и Яндекс. Как помочь клиенту и роботу
Микроразметка в Google и Яндекс. Как помочь клиенту и роботу
 
Микроразметка - улучшения связи сайта с пользователями и роботами
Микроразметка - улучшения связи сайта с пользователями и роботамиМикроразметка - улучшения связи сайта с пользователями и роботами
Микроразметка - улучшения связи сайта с пользователями и роботами
 

More from Anatoly Simkin

Концепция «Единая цифровая образовательная экосистема»
Концепция «Единая цифровая образовательная экосистема»Концепция «Единая цифровая образовательная экосистема»
Концепция «Единая цифровая образовательная экосистема»Anatoly Simkin
 
Мониторинг трудоустройства выпускников как компонент регулировки региональных...
Мониторинг трудоустройства выпускников как компонент регулировки региональных...Мониторинг трудоустройства выпускников как компонент регулировки региональных...
Мониторинг трудоустройства выпускников как компонент регулировки региональных...Anatoly Simkin
 
Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...
Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...
Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...Anatoly Simkin
 
Стратегия развития электротехнического направления в сегменте Строительство и...
Стратегия развития электротехнического направления в сегменте Строительство и...Стратегия развития электротехнического направления в сегменте Строительство и...
Стратегия развития электротехнического направления в сегменте Строительство и...Anatoly Simkin
 
Стратегия преобразования Отдела региональных продаж Unilever
Стратегия преобразования Отдела региональных продаж UnileverСтратегия преобразования Отдела региональных продаж Unilever
Стратегия преобразования Отдела региональных продаж UnileverAnatoly Simkin
 
Разработка стратегии продвижения Internet Explorer 9 в России
Разработка стратегии продвижения Internet Explorer 9 в РоссииРазработка стратегии продвижения Internet Explorer 9 в России
Разработка стратегии продвижения Internet Explorer 9 в РоссииAnatoly Simkin
 
Системный анализ профиля группы компаний "Волга-Днепр"
Системный анализ профиля группы компаний "Волга-Днепр"Системный анализ профиля группы компаний "Волга-Днепр"
Системный анализ профиля группы компаний "Волга-Днепр"Anatoly Simkin
 
Разработка ИТ-стратегии для ОАО «РСК "МиГ"»
Разработка ИТ-стратегии для ОАО «РСК "МиГ"» Разработка ИТ-стратегии для ОАО «РСК "МиГ"»
Разработка ИТ-стратегии для ОАО «РСК "МиГ"» Anatoly Simkin
 
Научно-исследовательская работа "Повышение эффективности учета закупок и скла...
Научно-исследовательская работа "Повышение эффективности учета закупок и скла...Научно-исследовательская работа "Повышение эффективности учета закупок и скла...
Научно-исследовательская работа "Повышение эффективности учета закупок и скла...Anatoly Simkin
 
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Anatoly Simkin
 
Разработка технико-коммерческого предложения по автоматизации региональной се...
Разработка технико-коммерческого предложения по автоматизации региональной се...Разработка технико-коммерческого предложения по автоматизации региональной се...
Разработка технико-коммерческого предложения по автоматизации региональной се...Anatoly Simkin
 
Автоматизация библиотеки департамента
Автоматизация библиотеки департаментаАвтоматизация библиотеки департамента
Автоматизация библиотеки департаментаAnatoly Simkin
 
Оптимизация динамических характеристик и исследование устойчивости и автоколе...
Оптимизация динамических характеристик и исследование устойчивости и автоколе...Оптимизация динамических характеристик и исследование устойчивости и автоколе...
Оптимизация динамических характеристик и исследование устойчивости и автоколе...Anatoly Simkin
 
Проектирование конструкции механизма линейных перемещений
Проектирование конструкции механизма линейных перемещенийПроектирование конструкции механизма линейных перемещений
Проектирование конструкции механизма линейных перемещенийAnatoly Simkin
 
Развитие модели зрелости системы стратегического управления вузом по ключевым...
Развитие модели зрелости системы стратегического управления вузом по ключевым...Развитие модели зрелости системы стратегического управления вузом по ключевым...
Развитие модели зрелости системы стратегического управления вузом по ключевым...Anatoly Simkin
 
Простой подход к проектированию сложной системы
Простой подход к проектированию сложной системыПростой подход к проектированию сложной системы
Простой подход к проектированию сложной системыAnatoly Simkin
 
Техническое задание на разработку АС "Контроль доступа"
Техническое задание на разработку АС "Контроль доступа"Техническое задание на разработку АС "Контроль доступа"
Техническое задание на разработку АС "Контроль доступа"Anatoly Simkin
 
Практический подход к систематизации требований при проектировании информацио...
Практический подход к систематизации требований при проектировании информацио...Практический подход к систематизации требований при проектировании информацио...
Практический подход к систематизации требований при проектировании информацио...Anatoly Simkin
 
Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...
Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...
Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...Anatoly Simkin
 
Создание и применение модели гибкой автоматизации бизнес процессов с использо...
Создание и применение модели гибкой автоматизации бизнес процессов с использо...Создание и применение модели гибкой автоматизации бизнес процессов с использо...
Создание и применение модели гибкой автоматизации бизнес процессов с использо...Anatoly Simkin
 

More from Anatoly Simkin (20)

Концепция «Единая цифровая образовательная экосистема»
Концепция «Единая цифровая образовательная экосистема»Концепция «Единая цифровая образовательная экосистема»
Концепция «Единая цифровая образовательная экосистема»
 
Мониторинг трудоустройства выпускников как компонент регулировки региональных...
Мониторинг трудоустройства выпускников как компонент регулировки региональных...Мониторинг трудоустройства выпускников как компонент регулировки региональных...
Мониторинг трудоустройства выпускников как компонент регулировки региональных...
 
Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...
Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...
Комплексная стратегия продвижения облачного сервиса Windows Azure на российск...
 
Стратегия развития электротехнического направления в сегменте Строительство и...
Стратегия развития электротехнического направления в сегменте Строительство и...Стратегия развития электротехнического направления в сегменте Строительство и...
Стратегия развития электротехнического направления в сегменте Строительство и...
 
Стратегия преобразования Отдела региональных продаж Unilever
Стратегия преобразования Отдела региональных продаж UnileverСтратегия преобразования Отдела региональных продаж Unilever
Стратегия преобразования Отдела региональных продаж Unilever
 
Разработка стратегии продвижения Internet Explorer 9 в России
Разработка стратегии продвижения Internet Explorer 9 в РоссииРазработка стратегии продвижения Internet Explorer 9 в России
Разработка стратегии продвижения Internet Explorer 9 в России
 
Системный анализ профиля группы компаний "Волга-Днепр"
Системный анализ профиля группы компаний "Волга-Днепр"Системный анализ профиля группы компаний "Волга-Днепр"
Системный анализ профиля группы компаний "Волга-Днепр"
 
Разработка ИТ-стратегии для ОАО «РСК "МиГ"»
Разработка ИТ-стратегии для ОАО «РСК "МиГ"» Разработка ИТ-стратегии для ОАО «РСК "МиГ"»
Разработка ИТ-стратегии для ОАО «РСК "МиГ"»
 
Научно-исследовательская работа "Повышение эффективности учета закупок и скла...
Научно-исследовательская работа "Повышение эффективности учета закупок и скла...Научно-исследовательская работа "Повышение эффективности учета закупок и скла...
Научно-исследовательская работа "Повышение эффективности учета закупок и скла...
 
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
Доклад и реферат по теме системной инженерии "Управление архитектурой при про...
 
Разработка технико-коммерческого предложения по автоматизации региональной се...
Разработка технико-коммерческого предложения по автоматизации региональной се...Разработка технико-коммерческого предложения по автоматизации региональной се...
Разработка технико-коммерческого предложения по автоматизации региональной се...
 
Автоматизация библиотеки департамента
Автоматизация библиотеки департаментаАвтоматизация библиотеки департамента
Автоматизация библиотеки департамента
 
Оптимизация динамических характеристик и исследование устойчивости и автоколе...
Оптимизация динамических характеристик и исследование устойчивости и автоколе...Оптимизация динамических характеристик и исследование устойчивости и автоколе...
Оптимизация динамических характеристик и исследование устойчивости и автоколе...
 
Проектирование конструкции механизма линейных перемещений
Проектирование конструкции механизма линейных перемещенийПроектирование конструкции механизма линейных перемещений
Проектирование конструкции механизма линейных перемещений
 
Развитие модели зрелости системы стратегического управления вузом по ключевым...
Развитие модели зрелости системы стратегического управления вузом по ключевым...Развитие модели зрелости системы стратегического управления вузом по ключевым...
Развитие модели зрелости системы стратегического управления вузом по ключевым...
 
Простой подход к проектированию сложной системы
Простой подход к проектированию сложной системыПростой подход к проектированию сложной системы
Простой подход к проектированию сложной системы
 
Техническое задание на разработку АС "Контроль доступа"
Техническое задание на разработку АС "Контроль доступа"Техническое задание на разработку АС "Контроль доступа"
Техническое задание на разработку АС "Контроль доступа"
 
Практический подход к систематизации требований при проектировании информацио...
Практический подход к систематизации требований при проектировании информацио...Практический подход к систематизации требований при проектировании информацио...
Практический подход к систематизации требований при проектировании информацио...
 
Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...
Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...
Модель гибкой автоматизации бизнес-процесса интернет-торговли с использование...
 
Создание и применение модели гибкой автоматизации бизнес процессов с использо...
Создание и применение модели гибкой автоматизации бизнес процессов с использо...Создание и применение модели гибкой автоматизации бизнес процессов с использо...
Создание и применение модели гибкой автоматизации бизнес процессов с использо...
 

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

  • 1. Государственное образовательное учреждение высшего профессионального образования «Московский государственный технический университет имени Н.Э. Баумана» (МГТУ им. Н.Э. Баумана) ФАКУЛЬТЕТ _________Информатикаи Системы управления______________ КАФЕДРА ___________Системы автоматического управления_____________ ______________________________________________________________________ Р А С Ч Ё Т Н О - П О Я С Н И Т Е Л Ь Н А Я З А П И С К А к курсовой работе на тему: _______________Исследованиеи разработка программного_________________ _______________обеспеченияинтерполяции изображений__________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Студент ___________________________ __________________ ___________________ (Подпись, дата) (И.О.Фамилия) Руководитель квалификационной работы __________________ __________________ (Подпись, дата) (И.О.Фамилия) Москва, 2009
  • 2. 2 Содержание стр. Обозначения и сокращения.............................................................................................................................................3 Аннотация.................................................................................................................................................................................3 Введение ....................................................................................................................................................................................3 1 Постановка задачи и первичное исследование................................................................................................4 1.1 Постановка задачи ...................................................................................................................................................4 1.2 Оценка современного состояния решаемой научно-технической проблемы ........................4 1.3 Обоснование необходимости проведения работы.................................................................................5 1.4 Назначение и цели создания программного обеспечения ................................................................5 2 Проектирование ПО.........................................................................................................................................................5 2.1 Структура модулей ПО...........................................................................................................................................5 2.2 Постановка задачи на реализацию подсистем АС ..................................................................................6 3 Теоретические исследования.....................................................................................................................................6 3.1 Обоснование направления исследований ..................................................................................................7 3.2 Математическая интерполяция .......................................................................................................................8 3.2.1 Определение .......................................................................................................................................................8 3.2.2 Методы интерполяции..................................................................................................................................9 3.3 Одномерная сплайн-интерполяция................................................................................................................9 3.3.1 Сплайн-функция ...............................................................................................................................................9 3.3.2 Интерполяция сплайном третьей степени..................................................................................... 10 3.3.2.1 Линейный сплайн................................................................................................................................. 11 3.3.2.3 Кубический сплайн.............................................................................................................................. 12 3.4 Двухмерная сплайн-интерполяция ............................................................................................................. 14 3.4.1 Билинейный сплайн.................................................................................................................................... 14 3.4.1.1 Алгоритм ................................................................................................................................................... 14 3.4.1.2 Недостатки метода .............................................................................................................................. 15 3.4.2 Бикубический сплайн ................................................................................................................................. 16 3.4.3 Сравнение билинейной и бикубической интерполяции ........................................................ 17 3.4.4 Билинейное и бикубическое ресемплирование........................................................................... 18 4 Практические результаты и экспериментальные исследования ....................................................... 18 4.1 Изменение размера изображения ................................................................................................................ 18 4.2 Экспериментальные исследования............................................................................................................. 19 4.2.1 Описание программного стенда ........................................................................................................... 19 4.2.1.1 Интерфейс программного стенда..................................................................................................... 20
  • 3. 3 4.2.1.2 Описание разработанной библиотеки........................................................................................... 20 4.2.2 Эксперименты................................................................................................................................................. 21 4.2.2.1 Тесты на качество обработки ........................................................................................................ 21 4.2.2.2 Тесты производительности............................................................................................................ 21 4.3 Обобщение и оценка результатов исследований ................................................................................ 22 Заключение ........................................................................................................................................................................... 23 Список использованных источников...................................................................................................................... 24 Обозначения и сокращения АС – Автоматизированная система; Задача АС – Задача автоматизированной системы; НИР – Научно-исследовательская работа; ПО – Программное обеспечение; ТЗ – Техническое задание на автоматизированную систему; Аннотация В данной работе рассмотрена задача разработки программного обеспечения интерполяции изображений. Для поставленной задачи была разработана структура системы, модулей и схемы их взаимодействия. Предложена среда разработки и реализации автоматизированной системы. Сделан выбор технических и трудовых средств и ресурсов, обслуживающих автоматизированную систему. Исследованы и приведены алгоритмы решения задачи интерполяции изображений. Алгоритмизированы три метода решения данной задачи. Проведены их экспериментальные исследования зависимости производительности от размера изображения и метода обработки. Сделаны выводы по полученным результатам и предложены наиболее оптимальные алгоритмы обработки. На основании экспериментов были сделаны выводы о производительности алгоритмов. Введение Рост интенсивного развития человеческой деятельности в области современных информационных технологий влечет за собой необходимость упрощения способов идентификации и обработки различных данных. На
  • 4. 4 сегодняшний день одним из актуальных классов задач, являются задачи автоматического обнаружения и распознания данных, содержащихся на графических изображениях. Результаты решения подобного класса задач могут быть использованы в современных системах компьютерного зрения: системы идентификации изображений, зрение роботов, компьютерная анимация, видеосъемка (автоматическое слежение за движущимися объектами). В связи с последними достижениями в области развития интеллектуальных разработок, появляется возможность решения многих задач путем создания прикладных систем интеллектуального анализа данных. Таким образом, данная работа посвящена исследованию методов обработки изображений. 1 Постановка задачи и первичное исследование 1.1 Постановка задачи Наименование задачи (НИР): Исследование и разработка программного обеспечения интерполяции изображений. Входные данные: Изображение, подлежащее обработке. Выходные данные: Интерполированное изображение. Задача заключается в том, чтобы разработать программное обеспечение (ПО) задачей которого будет обработка изображений для последующего анализа. В рамках задачи дипломного проекта1 эта задача является связующим звеном между подсистемой получения и предварительной обработки изображения и подсистемой анализа и распознавания. 1.2 Оценка современного состояния решаемой научно-технической проблемы Исследование современного рынка решений поставленной задачи приводит к выводу о том, что существует множество ПО для решения подобной задачи. Однако, во многих случаях интеграция с подсистемами затруднена, как вследствие этого необходима разработка собственного модуля для обработки изображений. Общий анализ технологической базы существующих прикладных решений приводит к следующим выводам: 1 Под Системой понимается «Автоматизированная система контроля доступом» подробное описание назначения и целей создания АС имеется в ТЗ к дипломному проекту.
  • 5. 5  Используется большое количество методов и алгоритмов интерполяции изображений.  Обеспечивается высокое качество и производительность.  Решения не обладают универсальностью, используются в контексте подсистем ПО. Таким образом, можно сделать вывод о том, существующие системы обладают хорошей технологической базой, но не обладают достаточной универсальностью. В существующих ПО нет модульного решения для интеграции в существующую задачу. 1.3 Обоснование необходимости проведения работы В результате оценки современного состояния решаемой задачи мы приходим к выводу о том, что существующие решения, не дают полной возможности (без доработок) произвести интеграцию с реализованной подсистемой. Проведение НИР в области исследования и разработки программного обеспечения интерполяции изображений, которое будет обладать модульной структурой, является в рамках задачи дипломного проектирования очень важной задачей. 1.4 Назначение и цели создания программного обеспечения Назначение ПО – интерполяция входящего изображения. Основная цель создания ПО – создания модуля для системы распознавания изображений. Создание данного ПО, как модуля системы, решает конкретные задачи:  Повышает скорость последующей обработки изображений;  Повышает эффективность распознавания изображения;  Расширяет функционал системы. 2 Проектирование ПО 2.1 Структура модулей ПО В автоматизированную систему должны входить следующие модули:  библиотека типов;  библиотека расширенной работы с массивами;
  • 6. 6  библиотека обработки изображений;  библиотека основных функций;  библиотека быстрой работы с изображениями;  библиотека построения линейных сплайнов;  библиотека построения двухмерных сплайнов; Необходимая взаимосвязь компонентов приложения изображена в диаграмме компонентов (см. рисунок 2.1) по нотации UML 2.0 [1]. Interpolate Image «library» ImgLibTypes «library» ImgLibArrayExt «library» ImgLibImageExt «library» ImgLibImpl «library» QPixels «library» SplineLibLinear «library» SplineLibBilinear Рисунок 2.1. Взаимосвязь модулей приложения 2.2 Постановка задачи на реализацию подсистем АС В поставленной задаче НИР стоит разработка ПО интерполяции изображений. Будем реализовывать поставленную задачу таким образом, чтобы соблюдать модульную структуру Системы. Наибольший практический интерес представляет собой задача билинейной интерполяции, входящая в модуль «Библиотека обработки изображений». 3 Теоретические исследования Основная задача исследований заключается в изучении современных алгоритмов интерполяции изображений и их реализация в ПО.
  • 7. 7 В данном разделе отчета о НИР рассматриваются методы интерполяции изображений. Таким образом, далее следует описание проведенных исследований и разработанных алгоритмов для решения задачи разработки ПО. 3.1 Обоснование направления исследований Все большее распространение получили системы автоматизированного ввода информации через различные типы сканеров, а также цифровые фото- и видеокамеры. При этом по разрешающей способности такие системы ввода вполне приближаются к зрению человека или животных, а с учетом быстродействия ближайшей технической моделью глаза, очевидно, являются видео- и цифровые фотокамеры. Так ПЗС матрица цифровой фотокамеры обеспечивает разрешение до 3 млн. пикселей на кадр, а современным высокопроизводительным компьютерам вполне доступна несложная обработка в реальном масштабе времени. Под обработкой изображений следует понимать совокупность методов и задач, где входной информацией являются изображения [2]. Круг решаемых задач очень широк и используется в различных областях, таких как математика, нейробиология, оптическая физика и других. Можно назвать две основные прикладные области, активно развиваемые в последнее время, это «Машинное зрение» и «Компьютерное зрение». Данные области достаточно близки и часто пересекаются по классу задач, поэтому иногда их объединяют в одну (см. рисунок 3.1). Современные исследования и развития данных областей, позволяют сформулировать их основные задачи [2].  Обработка изображений фокусируется на обработке двумерных (2D) изображений.  Машинное зрение - это решение промышленных и производственных задач (робототехника и прочее).  Компьютерное зрение включает в себя класс задач связанных с восстановлением трехмерного изображения (3D) по входным двумерным (2D) изображениям. В рамки задач по обработке изображений входят и задачи преобразования размеров изображения, и соответственно их интерполяция. Интерполяция изображений происходит во всех цифровых фотографиях на определённом этапе, например, при масштабировании. Она происходит всякий раз,
  • 8. 8 когда вы изменяете размер или развёртку изображения из одной сетки пикселей в другую. Изменение размера изображения необходимо, когда вам нужно увеличить или уменьшить число пикселей, тогда как изменение положения может происходить в самых различных случаях: исправление искажений объектива, смена перспективы или поворот изображения. 3.2 Математическая интерполяция Интерполяция – в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений. Часто в научных и инженерных расчетах приходится оперировать наборами значений, полученных экспериментальным путём или методом случайной выборки. На основании этих наборов данных требуется построить график функции, на которую могли бы с высокой точностью попадать другие получаемые значения. Такая задача называется аппроксимацией кривой. Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных. Также существует близкая к интерполяции задача, которая заключается в аппроксимации какой-либо сложной функции другой, более простой функцией. В случае, когда некоторая функция слишком сложна для производительных вычислений, можно попытаться вычислить её значение в нескольких точках, а по ним построить, то есть интерполировать, более простую функцию. Использование упрощенной функции не позволяет достичь первоначальной точности, но в определенных классах задач достигнутый выигрыш в простоте и скорости вычислений перевешивает получаемую погрешность в результатах. Существует также совершенно другая разновидность математической интерполяции, известная под названием «интерполяция операторов». 3.2.1 Определение Рассмотрим систему несовпадающих точек  0,1,...,ix i N из некоторой области D . Пусть значения функции f известны только в этих точках  , 1,...,i iy f x i N  (3.1)
  • 9. 9 Задача интерполяции состоит в поиске такой функции F из заданного класса функций, что   , 1,...,i iF x y i N  , (3.2) где  Точки ix называют узлами интерполяции, а их совокупность — интерполяционной сеткой;  Пары  ,i ix y называют точками данных или базовыми точками;  Разность между «соседними» значениями 1i i ix x x   — шагом интерполяционной сетки, который может быть как переменным, так и постоянным;  Функцию  F x — интерполирующей функцией. 3.2.2 Методы интерполяции  Интерполяция полиномами  Линейная интерполяция;  Интерполяционная формула Ньютона;  Метод конечных разностей;  Полином Лагранжа;  Сплайн-функция;  Обратное интерполирование  Полином Лагранжа;  Обратное интерполирование по формуле Ньютона;  Обратное интерполирование по формуле Лагранжа;  Рациональная интерполяция;  Тригонометрическая интерполяция. Методы сплайн интерполяции подробно рассмотрены в книге [3]. 3.3 Одномерная сплайн-интерполяция 3.3.1 Сплайн-функция Сплайн - это агрегатная функция, совпадающая с более простой функцией на каждом элементе разбиения своей области определения [4].
  • 10. 10 Сплайн-функция является особым видом кусочно-непрерывного полинома. В монографии [5] указано, что интерполяция сплайн-функция является более предпочтительным полиномиальной интерполяции, т.к. ошибка может быть намного меньше, даже при низкой степени многочлена сплайн-функции. Следовательно, позволяет избежать проблем возникающих при высокой степени аппроксимирующего полинома2. Таким образом, сформулируем задачу интерполяции. Пусть дано 1n  точек ix таких, что 0 1 1... n nx x x x    , (3.3) с известными 1n  значениями ( )i iy x . Необходимо определить сплайн-функцию степени n               0 0 1 1 1 2 1 1 1 , , , , ... , ,n n S x x x x S x x x x S x S x x x x           , (3.4) где каждая из функций  iS x является многочленом степени K . Рассмотрим интерполяцию сплайном третьей степени. 3.3.2 Интерполяция сплайном третьей степени В основе данной сплайн-интерполяции лежит следующий принцип. Интервал интерполяции разбивается на небольшие отрезки, на каждом из которых функция задается полиномом третьей степени. Коэффициенты полинома подбираются таким образом, чтобы выполнялись определенные условия, которые зависят от метода интерполяции. Общие требования для всех типов сплайнов третьего порядка:  Непрерывность функции;  Прохождение через все заданные точки. К дополнительным требованиям относятся:  Линейность функции между узлами;  Непрерывность высших производных;  И прочее. 2 Berrut, Jean-Paul, Trefethen, Lloyd N. Barycentric Lagrange interpolation // SIAM Review 46. – pp.501–517. – ISSN 1095-7200
  • 11. 11 Как уже было показано, основными достоинствами сплайн-интерполяции являются её устойчивость и малая трудоемкость. Системы линейных уравнений, которые требуется решать для построения сплайнов, хорошо обусловлены, что позволяет получать коэффициенты полиномов с высокой точностью. В результате при очень больших значениях N вычислительная схема не теряет устойчивость. Построение таблицы коэффициентов сплайна требует  N операций, а вычисление значения сплайна в заданной точке - всего лишь   log N . Рассмотрим некоторые виды кубических сплайнов, т.е. сплайны, являющиеся кусочно-кубическими функциями. 3.3.2.1 Линейный сплайн Линейный сплайн - это сплайн, составленный из полиномов первой степени, т.е. из отрезков прямых линий. Точность интерполяции линейными сплайнами невысока, кроме того они не обеспечивают непрерывности первых производных. Однако в некоторых случаях кусочно- линейная аппроксимация функции может оказаться предпочтительнее, чем аппроксимация более высокого порядка. Например, линейный сплайн сохраняет монотонность переданного в него набора точек. На рисунке 3.1 приведен пример линейного сплайна, интерполирующего функцию    cos 0.5f x x   на отрезке  1,1 . 3.3.2.2 Сплайн Эрмита Сплайн Эрмита - это сплайн третьего порядка, производная которого принимает в узлах сплайна заданные значения. В каждом узле сплайна Эрмита задано не только значение функции, но и значение её первой производной. Сплайн Эрмита имеет непрерывную только первую производную. На рисунке 3.2.а приведен пример сплайна Эрмита, интерполирующего функцию    cos 0.5f x x   на отрезке  1,1 . Можно заметить, что точность интерполяции значительно лучше, чем у линейного сплайна. Рисунок 3.1. Аппроксимация линейным сплайном
  • 12. 12 Рисунок 3.2а и 3.2б. Аппроксимация сплайном Эрмита (слева) и кубическим сплайном (справа) 3.3.2.3 Кубический сплайн Кубический сплайн – это такой сплайн, обеспечивающий непрерывность первой и второй производной в каждой точке. Кубический сплайн задается значениями функции в узлах и значениями производных на границе отрезка интерполяции (либо первых, либо вторых производных). Если известно точное значение первой производной на обеих границах, то такой сплайн называют фундаментальным. Его погрешность интерполяции равна  4 h , где h - это шаг заданной дискретной функции, т.е. 1i ix x  . Если значение первой (или второй) производной на границе неизвестно, то можно задать т.н. естественные граничные условия    '' '' 0S A S B  , и получить естественный сплайн. Погрешность интерполяции естественным сплайном составляет  2 h . Максимум погрешности наблюдается в окрестностях граничных узлов, во внутренних узлах точность интерполяции значительно выше. Ещё одним видом граничного условия, которое можно использовать, если неизвестны граничные производные функции, является условие типа "сплайн, завершающийся параболой". В этом случае граничный отрезок сплайна представляется полиномом второй степени вместо третьей (для внутренних отрезков по-прежнему используются полиномы третьей степени). В ряде случаев это обеспечивает большую точность, чем естественные граничные условия. Так же можно сочетать различные типы граничных условий на разных границах. Обычно так имеет смысл делать, если у нас есть только часть информации
  • 13. 13 о поведении функции на границе (например, производная на левой границе - и никакой информации о производной на правой границе). На рисунке 3.2б приведен пример кубического сплайна, интерполирующего    cos 0.5f x x   на отрезке  1,1 . Можно видеть, что точность интерполяции близка к точности сплайна Эрмита. Недостатком кубических сплайнов является то, что они склонны осциллировать в окрестностях точки, существенно отличающейся от своих соседей. На рисунке 3.3. приведен набор точек, содержащий один выброс. Зеленым цветом обозначен кубический сплайн с естественными граничными условиями. На отрезках интерполяции, граничащих с выбросом, сплайн заметно отклоняется от интерполируемой функции - сказывается влияние выброса. Для устранения данного недостатка используют сплайн Акимы. Б.2.2.4 Сплайн Акимы Сплайн Акимы - это особый вид сплайна, устойчивый к выбросам. На рисунке 3.3. красным цветом обозначен сплайн Акимы. Можно заметить, что, в отличие от кубического сплайна, сплайн Акимы в меньшей мере подвержен влиянию выбросов - на отрезках, граничащих с выбросом, практически отсутствуют признаки осцилляции. Важным свойством сплайна Акимы является его локальность - значения функции на отрезке  1,i ix x  зависят только от значений 2 1 1 2 2, , , , ,i i i i i if f f f f f     . Вторым свойством, которое следует принимать во внимание, является нелинейность интерполяции сплайнами Акимы - результат интерполяции суммы двух функций не равен сумме интерполяционных схем, построенных на основе отдельных функций. Для построения сплайна Акимы требуется не менее 5 точек. Во внутренней области (т.е. между 2 3 3, ,..., Nx x x  при нумерации точек от 0 до 1N  ) погрешность интерполяции имеет порядок  2 h . Рисунок 3.3. Аппроксимация сплайном Акимы
  • 14. 14 В данном разделе приведены не все существующие виды сплайнов, большое количество информации можно найти в литературе [3], [4] и [5]. 3.4 Двухмерная сплайн-интерполяция Двухмерная интерполяция имеет ряд особенностей, отличающих её от одномерного случая [6]. Главной такой особенностью является то, что подавляющее большинство алгоритмов двухмерной интерполяции может быть применено только на наборе точек специального вида - на прямоугольной сетке, ориентированной по осям координат. Именно на такой сетке могут быть построены два наиболее важных типа интерполирующих функций: билинейный сплайн и бикубический сплайн. 3.4.1 Билинейный сплайн Билинейная функция - это функция двух аргументов t и u , которая при фиксированном значении t линейна по u и наоборот. Билинейный сплайн является двухмерным обобщением одномерного линейного сплайна и имеет те же достоинства и недостатки. Он составляется из билинейных функций, определенных на каждой ячейке сетки так, что в узлах сетки они принимают предписанные значения. Этот способ интерполяции хорош своей простотой и быстродействием. Основной недостаток - разрывность производной интерполирующей функции на границах ячеек сетки. Также можно отметить сравнительно невысокую точность такой интерполяционной схемы. 3.4.1.1 Алгоритм В вычислительной математике билинейной интерполяцией называют расширение линейной интерполяции для функций в двух переменных. Ключевая идея заключается в том, чтобы провести обычную линейную интерполяцию сначала в одном направлении, затем в другом. Допустим, что необходимо интерполировать значение функции ( , )f x y в точке  ,P x y . Для этого необходимо знать значения функций в (окружающих P) точках        11 1 1 12 1 2 21 2 1 22 2 2, , , , ,Q x y Q x y Q x y Q x y    . Первым шагом интерполируется (линейно) значение вспомогательных точек R1 и R2 вдоль оси абсцисс, где    1 1 2 2, ; ,R x y R x y  :
  • 15. 15 2 1 1 11 21 2 1 2 1 2 1 2 12 22 2 1 2 1 ( ) ( ) ( ) ( ) ( ) ( ) x x x x f R f Q f Q x x x x x x x x f R f Q f Q x x x x             (3.5) Рисунок 3.43 Теперь проводится линейная интерполяция между вспомогательными точками R1 и R2. 2 1 1 2 2 1 2 1 ( ) ( ) ( ) y y y y f P f R f R y y y y       (3.6) Это и есть приблизительное значение функции в точке P, т.е. ( , )f x y . 11 21 2 2 1 2 2 1 2 1 2 1 2 1 12 22 2 1 1 1 2 1 2 1 2 1 2 1 ( ) ( ) ( , ) ( )( ) ( )( ) ( )( ) ( )( ) ( ) ( ) ( )( ) ( )( ) ( )( ) ( )( ) f Q f Q f x y x x y y x x y y x x y y x x y y f Q f Q x x y y x x y y x x y y x x y y                      (3.7) Результат билинейной интерполяции не зависит от порядка шагов. Возможно, сначала интерполировать между известными точками вдоль оси ординат и затем, получив два вспомогательных значения, интерполировать между ними вдоль оси абсцисс. 3.4.1.2 Недостатки метода Главным минусом билинейной интерполяции при масштабировании изображений является тот факт, что при увеличении в N раз изображения размером 3 Четыре красные точки представляют собой известные значения функции. Значение в зеленой точке должно быть интерполировано.
  • 16. 16 W на H пикселей в результате будет получено изображение размером не NW на NH пикселей, а (N(W − 1) + 1) на (N(H − 1) + 1) пикселей. Связано это с тем, что в исходном изображении, например, по горизонтали имеется W точек, т.е. (W − 1) смежных пар. При увеличении изображения в N раз между каждой парой основных точек вставляется по (N − 1) дополнительных точек (т.е. при увеличении вдвое между основными точками вставляется еще по одной, при увеличении втрое - по две и т.д.). Итого в результате ширина результирующего изображения будет равна сумме количества основных и дополнительных точек:     1 1 1 1W W N N W      . Проще говоря, для последнего пикселя (в каждой строке и столбце) исходного изображения не находится пары, с которой можно было бы провести интерполирование. 3.4.2 Бикубический сплайн В ряде случаев оказывается недостаточно точности, которую обеспечивают билинейные сплайны. Разрывность производной также часто оказывается мешающим фактором. В таких случаях можно применить бикубический сплайн, который гарантирует непрерывность первых производных dS dx и dS dy , а также непрерывность смешанной производной 2 d S dxdy. Здесь можно проследить аналогию с одномерными сплайнами (смотри раздел 3.2), однако есть и различия. Кубический сплайн гарантирует непрерывность первой и второй производных функции. Бикубический сплайн гарантирует непрерывность только градиента и смешанной производной, а непрерывность вторых производных 2 2 d S dx и 2 2 d S dy не гарантируется. Для построения бикубического сплайна требуются значения функции в узлах сетки, а также значения её градиента и смешанной производной. При наличии этой информации, мы можем сразу приступить к вычислению коэффициентов сплайна. Однако обычно имеются только значения функции, а значения градиента и смешанной производной требуется вычислять самостоятельно на их основе. Например, используя разностные схемы. Бикубическая интерполяция часто используется в обработке изображений, давая более качественное изображение по сравнению с билинейной интерполяцией.
  • 17. 17 3.4.3 Сравнение билинейной и бикубической интерполяции Результат бикубической интерполяции функции заданной на сетке [0,3] [0,3] . Данную сетку можно рассматривать как состоящую из 9 единичных квадратов. Черными точками обозначены известные значения функции до интерполяции. Цветом обозначены интерполированные значения в каждой точке полученного изображения. Результат билинейной интерполяции на тех же входных данных. Частные производные не являются непрерывными и терпят разрыв на границах квадратов. Рисунок 3.5а и 3.5б. Результат бикубической интерполяции (слева) и результат билинейной интерполяции (справа) Matlab code: Билинейная интерполяция [Xcoarse, Ycoarse] = meshgrid([0 1 2 3], [0 1 2 3]); [Xfine, Yfine] = meshgrid(linspace(0,3,1500), linspace(0,3,1500)); DataCoarse = [ 1 2 4 1; ... 6 3 5 2; ... 4 2 1 5; ... 5 4 2 3]; DataBilinearFine = interp2(Xcoarse, Ycoarse, DataCoarse, Xfine, Yfine, 'bilinear'); figure surf(Xfine, Yfine, DataBilinearFine); shading flat; colormap(jet); view(0, 90) hold on; plot3(Xcoarse, Ycoarse, 10*ones(size(Xcoarse)), 'k.', 'MarkerSize', 20) colorbar print -dpng -r300 BilinearInterpolExample.png Matlab code: Бикубическая интерполяция [Xcoarse, Ycoarse] = meshgrid([0 1 2 3], [0 1 2 3]); [Xfine, Yfine] = meshgrid(linspace(0,3,3000), linspace(0,3,3000)); DataCoarse = [ 1 2 4 1; ... 6 3 5 2; ... 4 2 1 5; ... 5 4 2 3];
  • 18. 18 DataBicubicFine = interp2(Xcoarse, Ycoarse, DataCoarse, Xfine, Yfine, 'bicubic'); figure surf(Xfine, Yfine, DataBicubicFine); shading flat; colormap(jet); view(0, 90) hold on; plot3(Xcoarse, Ycoarse, 10*ones(size(Xcoarse)), 'k.', 'MarkerSize', 20) colorbar print -dpng -r300 BicubicInterpolationExample.png 3.4.4 Билинейное и бикубическое ресемплирование Основной задачей, которая решается с помощью двухмерной интерполяции, является ресемплирование. Эта задача, которая возникает, когда имеются значения функции на регулярной сетке размером 1 1M N узлов, и требуется перейти от этой сетки к сетке размером 2 2M N узлов, покрывающей ту же область, и вычислить значения функции на новой сетке. При этом новая сетка может быть как более, так и менее плотная, чем старая. Ресемплирование - это получение по известным значениям в одних точках значений функции в других точках, т.е. задача интерполяции. Но данный случай является особым - требуется вычислять значение функции не в произвольных точках, а в узлах сетки, и вычисления проводятся только один раз, после чего мы получаем новую сетку и больше не возвращаемся к ресурсоемкой интерполяции. Так как двухмерный сплайн может быть билинейным или бикубическим, так и ресемплирование делится на билинейное и бикубическое. Алгоритмы двухмерной интерполяции и их математическое описание подробно рассмотрены в литературе [6]. 4 Практические результаты и экспериментальные исследования 4.1 Изменение размера изображения Изменять размер изображения, в первую очередь необходимо для его последующей обработки [7]. В поставленной задаче в большинстве случаев необходимо уменьшать изображение, в данной главе рассмотрим общие принципы интерполяции изображений. Как уже отмечалось выше, интерполяция - это пространственный (или временной) прогноз значений неизвестных значений пикселей между истинными значениями пикселей. Например, для изменения размеров изображений используется один из методов интерполяции. Методы двумерной интерполяции используются также при повороте изображений [8].
  • 19. 19 На рисунках 4.1 и 4.2 приведены результаты интерполяции изображения небольшого исходного размера. Как видно из результатов, наиболее гладкое получается изображение интерполированное сплайном Акимы. Рисунок 4.1а и 4.1б. Исходное изображение (слева) и интерполированное билинейным сплайном (справа) Рисунок 4.2а и 4.2б. Интерполяция изображения бикубическим (слева) и акима сплайном (справа) 4.2 Экспериментальные исследования В данной главе приводятся проведенные экспериментальные исследования разработанных и исследованных методов интерполяции. Эксперименты будут проводиться в искусственных условиях с программным изменением параметров изображений, таких как яркость, шум и геометрические искажения. 4.2.1 Описание программного стенда Для проведения экспериментов был разработан программный стенд, позволяющий проводить эксперименты. Программный стенд является интерфейсом к разработанным модулям библиотеки.
  • 20. 20 4.2.1.1 Интерфейс программного стенда Рисунок 4.3. Интерфейс программного стенда Программный стенд позволяет выполнять интерполяцию изображения различными алгоритмами. Программный стенд так же позволяет выбирать размер будущего изображения. Одна из основных оценочных характеристик – измерение производительности (время выполнения обработки), так же добавлена в возможности программного стенда. 4.2.1.2 Описание разработанной библиотеки В процессе работы над данной задачей была разработана специальная библиотека «ImgLib». Данная библиотека позволяет совершать большое количество действий с массивами, изображениями, объявленными типами. В библиотеку входят 4 модуля:  ImgLibTypes (Variables, Constantes and Types) В данном модуле объявлены все используемые переменные, константы и типы, а также функции работы с типами;  ImgLibImageExt (Image Extension Works) В данном модуле содержатся процедуры и функции для расширенных операций с изображениями;  ImgLibArrayExt (Array Extension Works) В данном модуле содержатся процедуры и функции для расширенных операций с изображениями;  ImgLibImpl (Implementation)
  • 21. 21 В данном модуле содержится основные процедуры и функции для обработки изображений и распознаванию. 4.2.2 Эксперименты Учитывая особенности поставленной задачи, тестирование разработки можно проводить в искусственных условиях. 4.2.2.1 Тесты на качество обработки Приведение примеров тестов на качество обработки очень громоздко. Для количественной оценки качественного критерия необходимо производить экспертный анализ, что не являлось возможным в ходе выполнения данной работы. 4.2.2.2 Тесты производительности 4.2.2.2.1 Влияние метода интерполяции на производительность Рисунок 4.4. Гистограмма влияния метода интерполяции на время обработки Методика проведения данного эксперимента состоит в том, что мы просто берем изображение и интерполируем их разными методами до большого размера (3000 пикселей). Усредняя значение, получили следующую гистограмму. Полученная характеристика очень логична, т.к. чем сложнее математическое описание сплайна, тем сложнее и дольше его вычисление.
  • 22. 22 4.2.2.2.2 Влияние размера изображения и метода интерполяции на производительность 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 1000х1000 2000x2000 3000х3000 Среднееинтерполяцииизображения,мс Размерность интерполированного изображения, пиксель 2 Влияние размера изображения на время обработки алгоритма Линейный сплайн Кубический сплайн Акима сплайн Рисунок 4.5. Гистограмма влияния метода интерполяции на время обработки Методика проведения данного эксперимента состоит в том, что мы просто берем изображение и интерполируем их разными методами до большого размера (1000, 2000 и 3000 пикселей). Усредняя значение, получили следующую гистограмму. Полученная характеристика очень логична, т.к. чем сложнее математическое описание сплайна, тем сложнее и дольше его вычисление. 4.3 Обобщение и оценка результатов исследований В результате проведенных экспериментов была исследована зависимость эффективность и качество интерполяции от влияния различных параметров и настроек. Следовательно, основываясь на результатах экспериментов можно предложить наиболее эффективные настройки и методы интерполяции. Рекомендуется:  Использовать интерполяцию сплайн функцией Акима для небольших по размеру изображений;  Использовать билинейную интерполяцию в случае больших изображений, если не требуется добиваться отличного качества изображения; В результате проведенных исследований можно сделать вывод о том, что билинейная интерполяция обладает хорошими качественными результатам интерполяции и отличной скоростью работы.
  • 23. 23 Таким образом, в результате проведенных исследований были детально исследованы алгоритмы интерполяции изображений. Проведены экспериментальные исследования и произведено тестирование реализованного ПО. Заключение Проведенная НИР в области интерполяции изображений дает возможности для дальнейшего продолжения разработки Системы. В данной работе исследовались и разрабатывались методы и алгоритмы интерполяции изображений. В результате проведенных исследований были алгоритмизированы три метода решения данной задачи и проведены их экспериментальные исследования зависимости производительности от размера изображения. На основании экспериментов были сделаны выводы о том, что билинейная интерполяция обладает хорошими качественными результатам интерполяции и отличной скоростью работы. Для поставленной задачи дипломного проекта («Разработка системы контроля доступом на основании системы распознавания номерных знаков») был разработан модуль интерполяции изображений. Одним из важнейших плюсов данного модуля является то, что в отличие от других он легко интегрируются с Системой. В дальнейшем будет сделана попытка углубиться в исследования и продолжение разработки Системы с целью внедрения новых разработанных технологий.
  • 24. 24 Список использованных источников 1. Рамбо Джеймс, Блаха Майкл. UML 2.0. Объектно-ориентированное моделирование и разработка. – 2-е изд. – 2007. – 544 с. – ISBN 5-469-00814-2. 2. Pedram Azad, Tilo Gockel, Rudiger Dillmann. Computer Vision - Principles and Practice // Elektor International Media BV. – ISBN 0905705718. – 2008. – http://ivt.sourceforge.net/book.html. 3. Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее приложения. – М.: Мир, 1972. – 318 с. 4. Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. – М.: Наука, 1980. – 352 с. 5. Быстрицкий В. Двухмерная сплайн-интерполяция. – http://alglib.sources.ru/interpolation/spline2d.php 6. R. Keys. Cubic convolution interpolation for digital image processing // IEEE Transactions on Signal Processing, Acoustics, Speech, and Signal Processing 29: 1153. – 1981. – http://dx.doi.org/10.1109%2FTASSP.1981.1163711 7. Роджерс Д., Адамс Дж. Математические основы машинной графики. – М.: Мир, 2001. – ISBN 5-03-002143-4 8. Журавель И.М. и др. Краткий курс теории обработки изображений. – Интернет университет информационных технологий. – http://matlab.exponenta.ru/imageprocess/book2/index.php