task1 (1124865), страница 2
Текст из файла (страница 2)
На практике достаточно увеличить масштабировать изображение в k раз и произвести обычныйпоиск сдвига, а затем совмещенное изображение уменьшить обратнов k раз.3.4За реализацию алгоритмов 1 и 2 или алгоритмов 1 и 3 можно получить 2 балла. За реализацию трёх алгоритмов можно получить3 балла. За реализованный только пункт 1 баллы не даются. Обращаем ваше внимание на то, что реализации алгоритмов должныудовлетворять указанным сложностям, будет проводиться проверкакорректности и скорости алгоритмов.Зеркальное дополнение изображения при фильтрации(2 балла)4В каркасе фильтруются только те пиксели, окрестности которых невыходят за границу изображения. Предлагается реализовать дополнение изображения по принципу зеркалирования.
Баллы будут даваться только тем решениям, которые выполняют дополнение изображения до прохода фильтром по изображению.3.5Для упрощения выполнения задания под Windows вам предлагаются файл cygwin.exe. Это самораспаковывающийся архив, в нём находится cygwin — среда программирования с gcc.
Разархивируйтеcygwin.exe и запустите сценарий Cygwin.bat. Откроется консоль ивы окажетесь в папке /home/<username>. Скопируйте в эту папкуархив align_project.tar.gz с каркасом задания и разархивируйте командой tar xvf align_project.tar.gz; Разархивируйте в эту папку align_project.exe и зайдите в папку проекта, введя в консоли команду cd align_project. Запустите сценарий компиляции командойmake all. В папке build/bin появятся исполняемыe файлы. Их можно запустить из консоли командой ./build/bin/<имя файла> . Удалить все скомпилированные файлы можно командой make clean .Если вы используете Linux, то вам будет достаточно поставить gccи GNU make.Выравнивание баланса белого (3 балла)Добавьте в этап постпроцессинга алгоритм выравнивания балансабелого, описанный в параграфе 4 статьи Chikane, Fuh: AutomaticWhite Balance for Digital Still Cameras.3.6Среда программирования и устройство каркасаМедианная фильтрация и быстрая медианная фильтрация (3 балла)Медианная фильтрация полезна для экспериментов с удалением импульсного шума.
В данном задании нужно её реализовать. Это можно сделать тремя способами:• src — директория с исходным кодом в формате .cpp. Здесь особенно интересен файл matrix_example.cpp, в котором показанпример свертки с фильтром, суммирующим окрестность пикселя.21. Обычная медианная фильтрация за O(r ) времени, где r — радиус окрестности, по которой берётся медиана. Фильтрация выполняется путём сортировки окрестности заданного радиуса каждого пикселя и выбора медианы в качестве нового значения пикселя.• include — директория с заголовочными файлами.
Здесь интересны файлы matrix.h — объявление класса матрицы иmatrix.hpp — шаблонная реализация этого класса.2. Быстрая медианная фильтрация за O(r) времени.• externals — директория с исходными кодами библиотек. Здесь жебиблиотеки компилируются. В каркасе есть только одна библиотека, с помощью которой загружаются изображения в форматеBMP.3. Быстрая медианная фильтрация за O(1) времени.Две последних фильтрации подробно и понятно описаны в статьеPerreault et al: Median Filtering in Constant Time. Прочитайте статьюи разберитесь в алгоритмах. Достаточно посмотреть описание линейного алгоритма в конце параграфа I и константного алгоритма, емупосвящен параграф II (мы не описываем его тут, разобраться — эточасть задания).• bridge — директория, в которую добавляются заголовочные файлы и скомпилированные библиотеки для импорта в основнойпроект.4• build/bin — директория, в которой сохраняются выполняемыефайлы компиляции (т.е.
после того, как отработала командаmake all).субпиксельное совмещение изображений;--white-balance в двух вариантах: после опции --align и отдельнодля обработки обычных трехканальных изображений;--median <radius>, –median-linear <radius>, --median-const<radius> — опции для сглаживания изображения медианнымфильтром (используются только для обработки изображения).Для проверки заданий используется компьютер с Core i7, 24GbRAM с Gentoo Linux.
Программы компилируются с помощью gccверсии не ниже 4.7. Этот компилятор выбран для кроссплатформенности (мы хотим, чтобы пользователи Windows и Linux имелиравные права при выполнении данного задания).Вы можете выполнить задание в Visual Studio, но при посылке впроверяющую систему ваш проект должен иметь сценарий компиляций на языке GNU make, а также без ошибок собираться с помощьюgcc.Ваша программа не должна выполнять никаких сетевых взаимодействий, в противном случае она будет дисквалифицирована безправа пересдачи. Использовать параллелизм в рамках базового задания не рекомендуется — программа будет запускаться с выделением одного логического процессора. Это необходимо для того, чтобымы могли сравнивать произодительность ваших программ с точкизрения эффективности реализованных алгоритмов.
Тем не менее, выможете использовать SIMD-инструкции процессора в том случае, если программа проверяет наличие используемых инструкций во время выполнения. В противном случае решение будет возвращено надоработку.56Сдача и проверка заданийДля сдачи задания выполните команду make clean в папке проекта, перейдите на папку выше командой cd .. и заархивирует папку с проектом командой tar cvzf solution.tar.gz align_project.Полученный архив solution.tar.gz нужно послать в проверяющую систему. Исполняемые программы или скомпилированные библиотекиприкладывать в архив не нужно, сборка будет производится на нашей стороне.Определены два срока сдачи: мягкий дедлайн, после которого начинается начисление штрафных баллов (за первые двое суток по-0.5 баллов, далее по -1 баллу за сутки), и жёсткий дедлайн, после которого сданные программы проверяться не будут. Такие срокисдачи нужны для того, чтобы мы могли оперативно проверить вашипрограммы.
Проверка проходит в два этапа:1. Автоматизированный прогон вашей программы на тестах. Занимает от 1 дня до недели.2. Личное собеседование по коду вашей программы и обсуждениереализованных алгоритмов. Время и аудитория, в которой будутпроходить собеседования, будут сообщены отдельно.Аргументы командной строкиВ каркасе прописаны все необходимые опции программы, которыебудут использоваться при автоматической проверке. Кроме полногоалгоритма будет проверяться корректность операций, которыеиспользуются на различных этапах алгоритма (опции --gaussian,--sobel-x и т.п.).
При решении заданий бонусной части вам надобудет добавить следующие опции:--bicubic-interp после опции --align, которая будет включатьбикубическую интерполяцию;--region-of-interest <pinrow> <pincol> <row_count><col_count> после опции --align, которая будет включатьсовмещение по региону интереса (формат опций такой же как и вфункции Matrix::submatrix);--subpixel <k> после опции --align, которая будет включатьВсе задания проверяются только на нашем компьютере. Мы не будемсмотреть выполненное задание на вашем ноутбуке.Если на первом этапе программа не проходит тесты или обнаруживается, что базовая часть задания написана не полностью, то программа отправляется на доработку с начислением штрафных баллов.
Максимальный срок доработки — неделя, начисляется по -1 баллу за сутки. Если на каком-либо из этапов обнаруживается фактсписывания или покупки задания, то данное задание аннулируетсябез права пересдачи и итоговая оценка за курс штрафуется -5 баллами (в случае списывания штрафуются все вовлечённые в списываниеработы).5.














