- •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
- •Порядок выполнения работы
- •Методические рекомендации
- •Методические рекомендации
- •Особенности текстурной памяти.
- •Особенности линейной текстурной памяти.
- •Защита лабораторной работы
- •Правила оформления отчета
- •Оформление титульного листа
- •Библиографический список
Теоретическая часть Программный пакет «Sarcis».
Пакет «Sarcis» предназначен для цифровой обработки цветных и полутоновых изображений. Для обеспечения совместимости различных методов обработки программа преобразует формат исходного графического файла в 32-битный. Программа представляет собой окно с MDI-интерфейсом (Multi-Document Interface). Дочерние окна содержат исходное изображение, максимальное количество одновременно открытых изображений - 10. Имеется 3 инструментальных окна:
окно "Инфо", показывает текущее положение курсора на изображении, значения цвета в этой точке, а также высоту и ширину изображения;
окно "Гистограмма", выводит гистограмму по трём каналам изображения – красному, зеленому и синему;
окно "История", содержит информацию о проведенных с изображением преобразованиях и времени их выполнения.
Рис. 3.6. Интерфейс программы
Обработка изображения производится тогда, когда оно находится в рабочей области. Принцип обработки заключается в применении к изображению различных фильтров. Окно фильтра приведено на рис. 3.7.
Рис. 3.7. Окно фильтра
Общий для всех фильтров интерфейс окна содержит:
эскиз обрабатываемого изображения
выбор окна вывода (новое окно или текущее);
функции выбора процессора для обработки (центральный процессор (CPU) или видеокарта (GPU))
выбор каналов для обработки.
В левой части окна расположены элементы настройки работы, индивидуальные для каждого фильтра.
В пакете реализованы следующие возможности работы с изображениями:
изменение гистограммы;
наложение шума;
размытие;
выделение границ;
морфологическая обработка;
пороговая фильтрация.
Результат преобразования изображения может быть отменен, глубина хранения изменений составляет 10 шагов.
Команды меню.
Меню «Файл» позволяет загружать графические файлы командой "Открыть", захватывать кадры с видеокамеры командой "Захват с камеры" записать информацию в графический файл командой "Сохранить как".
Меню «Правка» Содержит команды "Отменить" и "Повторить", управляющие историей преобразования изображений, а также команду "Исходный размер", приводящую ширину и высоту изображения к его истинным размерам.
Меню «Коррекция» позволяет пользователю проводить преобразование гистограммы изображения, накладывать помехи (шум) и проводить канальную обработку изображения. Находящиеся в данном меню команды улучшают или ухудшают изображение перед его дальнейшей обработкой:
В подменю "Изменение гистограммы" содержатся следующие фильтры:
эквализация;
экспоненциализация;
релея;
степени 2\3;
гиперболическая.
«Инвертирование». Инвертирует выбранные каналы изображения.
Подменю «Шум» предоставляет следующие варианты наложения помех:
белый шум;
строковый шум;
соль и перец;
соль;
перец.
«Яркостное изображение». Функция преобразует изображение к градациям серого, оставляя, таким образом, только информацию о яркости изображения.
Команды «включения/отключения» каналов изображения. Отключенные каналы не подвергаются обработке.
Меню «Обработка» представляет основной инструментарий пакета Sarcis. В данном меню собраны фильтры для обработки изображения, объединенные в группы:
сглаживающие фильтры;
подчеркивание границ;
морфологическая обработка;
сегментация.
гомоморфная фильтрация;
удаление малых областей.
Меню «Модуль» объединяет подсистемы специализированной обработки и анализа изображений, входящие в состав пакета. Включает:
Редактирование контуров – графический редактор, позволяющий вручную добавлять необходимые элементы на изображение.
Классификация – подсистема моделирования и распознавания графических примитивов (шары, параллелепипеды, пирамиды) на изображении.
Подсистема совмещения изображений. Предоставляет инструментарий для отработки алгоритмов совмещения изображений.
Анализ изображений. Предоставляет возможность сравнения двух изображений, просмотра яркостных срезов и спектральной характеристики изображения.
Установка плагинов. Инструментарий тестирования сторонних алгоритмов обработки изображений.
Меню «Окна» служит для управления дочерними окнами программы. Позволяет включать/отключать инструментальные окна – "Инфо", "История" и "Гистограмма" и упорядочивать окна обрабатываемых изображений.
Меню «Справка». Информация о программе Sarcis
