align (796211)
Текст из файла
Обработка и совмещение каналов изображенияАнтон Конушин, Максим Новиков, Александр Сергеев, Влад Шахуро, Петров Илья.Срок сдачи: 23 сентября (23:59).1Graphics & Media LabVision GroupОбзор заданияПервым цветным фотографом России является Михаил Сергеевич Прокудин-Горский, сделавшийединственный цветной портет Льва Толстого. Каждый его снимок представляет из себя три чёрнобелых фотопластинки, соответствующие красному, зелёному и синему цветовым каналам. Сейчасколлекция его снимков находится в американской библиотеке конгресса, сканкопии фотопластинокдоступны в интернете.В данном задании мы предлагаем вам создать программу, которая будет совмещать изображения, полученные с фотопластинок Прокудина-Горского и, таким образом, познакомиться с базовымиоперациями обработки изображений. Реализация базовой части программы выполняется в несколькоэтапов:1.
Загрузка изображения.2. Разделение изображения на цветовые каналы.3. Поиск наилучшего сдвига для совмещения каналов.4. Сохранение результата.Возможны улучшения базового алгоритма. Они описаны после базовой части.2Базовая часть заданияЗа базовую часть задания можно получить 5 баллов, однако эта часть должна быть написанаполностью. Получение баллов за бонусную часть невозможно, если базовая часть не написанаполностью.2.1Загрузка и разделение изображения на цветовые каналыВходное изображение представляют из себя три пластинки, соответствующие (сверху вниз) каналамB, G и R. На данном этапе нужно загрузить изображение из файла и разделить его на три канала,по трети высоты изображения на один канал.12.2Поиск наилучшего сдвига для совмещения каналовНа этом этапе происходит совмещение каналов.
Для того, чтобы совместить два изображения,будем сдвигать одно изображение относительно другого в некоторых пределах, например, от −15 до15 пикселей. Далее, для перекрывающихся областей изображений посчитаем некоторую метрику.Оптимальным будет тот сдвиг, при котором метрика принимает наибольшее/наименьшее значение(в зависимости от метрики). Предлагается реализовать две метрики и выбрать ту, которая позволяетполучить более качественный результат при совмещении:1. Среднеквадратичное отклонение для изображений I1 и I2 :M SE(I1 , I2 ) =X1(I1 (x, y) − I2 (x, y))2 ,width · height x,yгде width, height— ширина и высота изображений соответственно. Для нахождения оптимального сдвига нужно взять минимум по всем сдвигам.2.
Кросс-корреляция для изображений I1 и I2 :XI1 ? I2 =I1 (x, y)I2 (x, y).x,yДля нахождения оптимального сдвига нужно взять максимум по всем сдвигам.3Бонусная часть заданияПри желании, вы можете выбрать и реализовать любые пункты из бонусной части, однако получитьможно максимум 10 баллов.3.1Удаление рамок пленки (5 баллов)Можно заметить, что во многих изображениях в каналах со всех четырёх краев есть обрамлениеплёнки. Это обрамление может существенно ухудшить качество совмещения каналов. На данномэтапе нужно реализовать детектор границ Canny, а затем с его помощью найти рамки плёнки икадрировать изображение по этим границам.Описание алгоритма работы детектора Canny:1.
Сглаживание изображения. Для уменьшения влияния шума изображение изображение сглаживается с помощью фильтра Гаусса радиуса 2 (т.е. ядро является матрицей размера 5 × 5)и σ = 1.4. Поскольку изображение может быть довольно большого размера, для ускоренияалгоритма кроме обычной фильтрации Гаусса нужно реализовать сепарабельную фильтрацию.Тестироваться будут оба вида фильтрации (см. параграф про аргументы командной строки).Обратите внимание, что сумма элементов в ядре фильтра Гаусса должна равняться 1 (т.е. ядроперед свёрткой нужно нормализовать).2. Вычисление градиентов.
Для сглаженного изображения I вычисляются производные по x и y —Ix и Iy . Это делается путём свертки I с ядрами Собеля Kx и Ky соответственно:−1 0 112100 .Kx = −2 0 2 , Ky = 0−1 0 1−1 −2 −1Затем вычисляется модуль градиента по формулеq|G| = Ix2 + Iy2 ,2и направление градиента по формулеθ(x, y) = atan2(Iy , Ix ),где atan2 — знаковый арктангенс, принимающий значения от −π до π (эта функция есть встандартной библиотеке).3. Подавление немаксимумов. Для каждого пикселя выберем двух соседей (соседями считаются 8пикселей вокруг данного пикселя): на первого показывает градиент (это можно определить поθ, будем считать, что на каждый соседний пиксель приходится по π4 радиан, 0 — направлениестрого вправо), на второго показывает вектор, противоположный градиенту.
Если модульградиента текущего пикселя больше модулей градиентов соседей, то он остаётся без изменений.В противном случае модуль градиента пикселя подавляется (обнуляется).4. Отсечение по двум порогам. На данном этапе производится сравнение модулей градиентас двумя заранее заданными числами (порогами), первое число меньше второго. Градиенты,меньшие по модулю первого порога, считаются незначительными и подавляются (обнуляются);градиенты, большие по модулю второго порога, считаются сильными, соответствующие импиксели считаются границами и сохраняются в финальной карте границ; остальные градиентысчитаются слабыми, вопрос включения соответствующих им пикселей в карту границ решаетсяна следующем шаге алгоритма.5. Отслеживание границ по гистерезису.
Пиксель w со слабым градиентом объявляется границейи включается в финальную карту границ только в том случае, когда он лежит в одной связнойкомпоненте с некоторым пикселем s, имеющим сильный градиент. Другими словами, w и sдолжны соединяться некоторой цепочкой пикселей-соседей (соседями считаются 8 пикселейвокруг данного пикселя) со слабыми градиентами.Предлагается придумать и реализовать однопроходный алгоритм (т.е.
такой алгоритм, которыйобходит каждый пиксель карты градиентов по одному разу), выделяющий связные компоненты.После этого нужно решить, какие пиксели со слабыми градиентами будут включаться вфинальную карту границ. Это нужно сделать за ещё один проход.Рассмотрим теперь поиск строк и столбцов пикселей, по которым будет обрезаться рамка изображения.В случае верхней границы будем искать строку в некоторой близости от верхнего края изображения (например, 5% от его высоты).
Для каждой такой строки посчитаем количество принадлежащихей пикселей границ, полученных с помощью детектора Canny. Среди этих чисел выберем два максимума. Этим максимумам будут соответствовать две строки. Из них выберем строку, наиболееудалённую от верхнего края изображения. Это делается потому, что в рамке изображения естьдва перехода: от светлой подложки сканера к темной незасвеченной пленке, а потом уже к самомуизображению.
По выбранной строке и нужно обрезать изображение.Для того, чтобы оба максимума не нашлись в непосредственной близости друг от друга (краяпленки не соответствуют строго строкам изображения), необходимо реализовать подавление немаксимумов в некоторой окрестности: после обнаружения первой строки-максимума соседние к нейстроки обнуляются, и после этого ищется второй максимум.3.2Построение и работа с пирамидой изображений (до 3 баллов)Построение пирамиды (2 балла) Для ускорения совмещения предлагается реализовать пирамиду изображений. В пирамиде изображений исходное изображение последовательно уменьшается в kраз, например k = 1.5 или k = 2, до некоторого минимального размера (например, чтобы меньшаясторона была не меньше 400 пикелей в длину). Поиск оптимального сдвига начинается с самого3маленького изображения, а затем на пути к исходному изображению уточняется на уменьшенных копиях изображения.
Таким образом, оригинальное изображение совмещается не в диапазоне −15 . . . 15пикселей, а в меньшем, уточненном с помощью уменьшенных копий изображения.Для составления пирамиды необходимо реализовать функцию изменения размера изображения.Для вычисления промежуточных значений при масштабировании изображения нужно использоватьбилинейную интерполяцию.Бикубическая интерполяция (1 балл) Реализация бикубической интерполяции для вычисленияпромежуточных значений при масштабировании изображения.3.3Постпроцессинг: визуальное улучшение совмещенного изображения(до 6 баллов)На данном этапе к совмещенному изображению можно применить различные преобразования,которые могут визуально улучшить изображение.
Можно реализовать четыре преобразования.Серый мир (1 балл) Преобразование уравнивает средние яркости каналов R, G и B. Сначалаподсчитываются средние яркости каналов SR , SG , SB , затем каждый пиксель каналов R, G, Bдомножается на числоS S S,,SR SG SBсоответственно. Здесь S =SR +SG +SB.3Повышение резкости (1 балл) Преобразование повышает резкость изображения. Достаточнопримененить ядро повышения резкости к изображению: 1− 6 − 23 − 61 212 − 3 43 −3 .211−6 −3 −6Автоконтраст (1 балл) Преобразование состоит в линейном растяжении яркости изображения.Для начала считается яркость изображения Y по формулеY = 0.2125 · R + 0.7154 · G + 0.0721 · B.Затем вычисляются параметры линейного растяжения Y и к каждому из каналов R, G и B применяется линейное растяжение с вычисленными параметрами.
Искомое линейное растяжение канала Yдолжно быть устойчивым (т.е. при подсчёте параметров для линейного растяжения заданная доляпикселей в начале и в конце гистограммы должна не учитываться).Выравнивание баланса белого (3 балла) Добавьте в этап постпроцессинга алгоритм выравнивания баланса белого, описанный в параграфе 4 статьи Chikane, Fuh: Automatic White Balance forDigital Still Cameras.3.4Медианная фильтрация и быстрая медианная фильтрация (до 3 баллов)Медианная фильтрация полезна для экспериментов с удалением импульсного шума. В данномзадании нужно её реализовать.
Это можно сделать тремя способами:41. Обычная медианная фильтрация за O(r2 ) времени, где r — радиус окрестности, по которойберётся медиана. Фильтрация выполняется путём сортировки окрестности заданного радиусакаждого пикселя и выбора медианы в качестве нового значения пикселя.2. Быстрая медианная фильтрация за O(r) времени.3. Быстрая медианная фильтрация за O(1) времени.Две последних фильтрации подробно и понятно описаны в статье Perreault et al: Median Filteringin Constant Time. Прочитайте статью и разберитесь в алгоритмах. Достаточно посмотреть описаниелинейного алгоритма в конце параграфа I и константного алгоритма, ему посвящен параграф II(мы не описываем его тут, разобраться — это часть задания).За реализованный только пункт 1 начисляется 1 балл. За реализацию алгоритмов 1 и 2 илиалгоритмов 1 и 3 можно получить 2 балла. За реализацию трёх алгоритмов можно получить 3 балла.Обращаем ваше внимание на то, что реализации алгоритмов должны удовлетворять указаннымсложностям, будет проводиться проверка корректности и скорости алгоритмов.3.5Зеркальное дополнение изображения при фильтрации (2 балла)В каркасе фильтруются только те пиксели, окрестности которых не выходят за границу изображения.Предлагается реализовать дополнение изображения по принципу зеркалирования.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















