- •230100 – Информатика и вычислительная техника
- •Часть 2. Алгоритмы цифровой обработки изображений 58
- •Часть 3. Методические указания для практических и лабораторных работ 109
- •Введение
- •Часть 1. Программирование графического адаптера nvidia с использованием технологии cuda
- •Краткая история развития графических адаптеров
- •Архитектура nvidia cuda
- •Архитектура gpu-приложения
- •Основные различия между cpu и cuda-устройством
- •Различие возможностей между поколениями cuda-устройств
- •Инструментарий cuda Toolkit
- •Установка
- •Проверка правильности установки
- •Компиляция примеров
- •Прикладные программные интерфейсы cuda
- •Особенности компиляции
- •Опции компилятора nvcc
- •Профайлер
- •Отладка программ в режиме эмуляции устройства
- •Среда разработки nvidia Parallel Nsight
- •Подключаемые библиотеки
- •Библиотека cublas
- •Библиотека cufft
- •Часть 2. Алгоритмы цифровой обработки изображений
- •Видоизменение гистограммы изображения
- •Основы пространственной фильтрации
- •Сглаживающие пространственные фильтры
- •Сглаживание изображений локальным усреднением
- •Сглаживание по обратному градиенту
- •Сглаживающий сигма-фильтр
- •Сглаживание по наиболее однородным областям
- •Медианный фильтр
- •Описание метода медианной фильтрации
- •Одномерный медианный фильтр
- •Зависимость качества работы медианного фильтра от размера апертуры
- •Двумерный медианный фильтр
- •Пространственные фильтры выделения границ областей
- •Линейные методы выделения границ областей. Лапласиан
- •Нелинейные методы выделения границ областей
- •Оператор Превита
- •Частотные фильтры
- •Сглаживающий частотный фильтр
- •Частотный фильтр повышения резкости
- •Гомоморфная фильтрация
- •Морфологическая фильтрация
- •Операции математической морфологии
- •Дилатация
- •Алгебраические свойства дилатации и эрозии
- •Применение морфологической дилатации
- •Применение морфологической эрозии
- •Размыкание и замыкание
- •Применение морфологических операций размыкания и замыкания
- •Основные морфологические алгоритмы
- •Выделение границ.
- •Заполнение областей.
- •Выпуклая оболочка.
- •Утончение.
- •Утолщение.
- •Построение остова.
- •Часть 3. Методические указания для практических и лабораторных работ
- •Практическая работа №1. Введение в технологию cuda
- •Цель работы
- •Порядок выполнения работы
- •Теоретическая часть
- •Архитектура графических адаптеров nvidia.
- •Архитектура чипа g80.
- •Архитектура чипа Fermi.
- •Вычислительные способности графического процессора.
- •Среда разработки cuda.
- •Язык cuda с.
- •Модель программирования cuda.
- •Теоретическая часть Модель памяти cuda
- •Особенности глобальной памяти.
- •Особенности разделяемой памяти.
- •Теоретическая часть Программный пакет «Sarcis».
- •Команды меню.
- •Панель инструментов.
- •Механизм подключения динамических библиотек.
- •Создание внешней библиотеки
- •Пример листинга программы динамической библиотеки.
- •Медианная фильтрация
- •Варианты индивидуальных заданий
- •Выбор по дискретному критерию.
- •Выбор по среднему контрасту.
- •Выбор по среднему градиенту.
- •Выбор на основе простых статистик.
- •Параметрическая аппроксимация.
- •Моментный подход.
- •Варианты индивидуальных заданий
- •Теоретическая часть
- •Инициализация устройства.
- •Выделение памяти на gpu
- •Пересылка данных между cpu и gpu.
- •Вызов функции ядра.
- •Методические рекомендации
- •Цель работы
- •Варианты индивидуальных заданий
- •Методические рекомендации
- •Защита лабораторной работы
- •Лабораторная работа № 3. Работа с разделяемой памятью в технологии cuda
- •Порядок выполнения работы
- •Методические рекомендации
- •Методические рекомендации
- •Особенности текстурной памяти.
- •Особенности линейной текстурной памяти.
- •Защита лабораторной работы
- •Правила оформления отчета
- •Оформление титульного листа
- •Библиографический список
Утончение.
Утончение
множества
А по
примитиву В, обозначаемое
,
можно определить с
помощью HM-преобразования:
.
Другое выражение для симметричного утончения множества А основано на последовательности примитивов {В1,В2,В3,...,Вn}, где Вi получается из Вi-1 поворотом. На этой основе можно определить операцию утончения по последовательности примитивов следующим образом:
.
Процесс состоит в том, что на первом проходе производится утончение множества A по примитиву В1, затем полученный результат подвергается утончению по примитиву В2 за второй проход, и так далее вплоть до n-го прохода с примитивом Вn. Весь этот процесс повторяется до тех пор, пока наблюдаются изменения.
На рис. 2.34, а приведен набор примитивов, обычно применяемых для утончения, а рис. 2.34, б демонстрирует пример множества, которое подвергается утончению с помощью описанной выше процедуры. На рис. 2.34, в показан результат утончения после одного сканирующего прохода по множеству А с помощью примитива В1, а на рисунках 2.34, г – 2.34, л – результаты проходов с помощью других примитивов. Сходимость достигается после второго прохода с примитивом В4. Рис. 2.34, л демонстрирует результат утончения. В заключение на рис. 2.34, м показан результат преобразования утонченного множества.
Утолщение.
Утолщение представляет собой обратную морфологическую операцию по отношению к утончению, определяемую выражением
,
где В – подходящий примитив.
Как и в случае утончения, утолщение может определяться как последовательная операция:
.
Используемые для утолщения примитивы имеют ту же форму, что и показанные на рис. 2.34, а для операции утончения, но единицы и нули внутри примитивов меняются местами. Однако специальный алгоритм утолщения редко реализуется на практике. Вместо этого обычно применяется процедура, состоящая в утончении фона для рассматриваемого множества, а затем берется дополнение полученного результата. Иными словами, для утолщения множества А сначала строится множество С = Ас, проводится его утончение, а затем строится Сс. Рис. 2.35 иллюстрирует такую процедуру.
В зависимости от вида исходного множества А описанная процедура может привести к появлению отдельных изолированных точек, как видно на рис. 2.35, г. Поэтому вслед за таким методом утолщения обычно применяется несложный шаг финальной обработки, цель которой состоит в удалении изолированных точек.
Построение остова.
Как видно из рис. 2.36, понятие остова S(A) множества А является простым и интуитивно понятным. Множество точек, образующих остов А, может быть выражено с использованием операций эрозии и размыкания. Так, можно показать, что
при
,
где В
— примитив,
а запись
обозначает
k
последовательных
применений
операции эрозии к множеству А.
Остов S(A) можно получить объединением подмножеств остова Sk(A). Кроме того, множество А может быть восстановлено по этим подмножествам с помощью уравнения
,
где
обозначает
последовательное применение дилатации
к Sk(A)
k
раз.
Восстановленное
множество приведено в шестой колонке
внизу. Рис.
2.37 иллюстрирует описанный подход. В
первой колонке сверхy
вниз показаны исходное множество и
результаты двух последовательных
применений к нему операции эрозии по
примитиву В.
Во
второй колонке показаны результаты
применения к множеству из первой колонки
операции
размыкания по тому же примитиву В.
В
третьей колонке
содержится просто разность множеств
из первой и второй колонок. Четвертая
колонка содержит (сверху вниз) две части
остова и окончательный результат его
построения. В
пятой колонке
показаны множества S0(A),
S1(A)
В
и
S2(A)
2B
= (S2(A)
В)
B.
Наконец,
в шестой колонке показан процесс
восстановления множества А.
Таблица 2.2.
Сводная таблица морфологических операций и их свойств
№ |
Операция |
Уравнения |
Примечания |
1 |
2 |
3 |
4 |
1 |
Дилатация |
|
«Расширение» границы множества А |
2 |
Эрозия |
|
«Сужение» границы множества А |
3 |
Размыкание |
|
Сглаживает контуры, разрывает узкие перешейки, убирает небольшие островки и острые выступы |
4 |
Замыкание |
|
Сглаживает контуры, заполняет узкие разрывы, углубления, отверстия |
5 |
НМ-преобразование |
|
Множество координат точек, в которых одновременно для В1 есть совпадения в А, а для В2 – в Ас. |
6 |
Выделение границы |
|
Множество граничных точек множества А. |
7 |
Заполнение области |
|
Заполняет область множества А, начиная с заданной внутренней точки р этой области. |
Окончание таблицы 2.2
1 |
2 |
3 |
4 |
8 |
Выпуклая оболочка |
|
Находит для А выпуклую оболочку С(А). Индекс «сход» указывает на момент сходимости |
9 |
Утончение |
|
Делает множество А «тоньше». Первые два уравнения являются базовым определением утончения. Вторые два уравнения отвечают утончению по последовательности примитивов. Этот метод обычно применяется на практике |
10 |
Утолщение |
|
Делает множество А «толще». Используются примитивы (IV), в которых нули заменяются единицами, а единицы – нулями. |
11 |
Построение остова |
|
Находит остов S(A) множества А, которое может быть восстановлено по подмножествам Sk(A). |

,