Тема:

Решение задач - Склейка изображений на Python

Задание:
В этом задании вам предстоит научиться склеивать изображения и обосновывать работоспособность программы с помощью преобразования Фурье.

Это задание с отчетом и рецензированием. Для удобства проверки вам нужно подготовить пдф-файл и загрузить его в проверяющую систему. Файл нужно разбить на пункты (1 — 5), в каждом пункте привести код, визуализацию результатов и необходимые пояснения. Пдф-файла без запуска кода должно быть достаточно, чтобы оценить качестве вашей работы.

За задание можно получить максимум 20 баллов. Задание разбито на шаги, за которые начисляются баллы.

1. Подготовьте одно изображение для экспериментов с гауссовской и лапласовской пирамидой.

2. (5 баллов) Постройте гауссовскую пирамиду изображения из не менее чем пяти слоев. Визуализируйте полученные изображения и амплитуды частот изображений пирамиды (код можно найти в видео про преобразование Фурье) и убедитесь, что на каждом слое диапазон частот сужается. Постройте пирамиду для трех различных значения сигмы гауссовского ядра. Для удобства экспериментирования определите отдельную функцию построения гауссовской пирамиды с параметрами img (изображение, по которому строится пирамида), sigma (параметр гауссовского ядра), n_layers (количество слоев пирамиды), возвращающую списки необходимых изображений.

3. (5 баллов) Проведите аналогичные эксперименты с лапласовской пирамидой. Функция для построения лапласовской пирамиды должна использовать функцию построения гауссовской пирамиды и иметь, как и функция гауссовской пирамиды, параметры img, sigma и n_layers.

4. (5 баллов) На основе функций построения гауссовской и лапласовской пирамиды напишите функцию склейки двух изображений на основе маски. Функция должна возвращать склееные изображения и промежуточные результаты — склееные изображения разных частот (т.е. лапласовскую пирамиду совмещенного изображения). Изображения для тестирования: a.png, b.png, mask.png. Изображение с маской не является бинарным (т.е. имеет промежуточные градации серого), его можно бинаризовать путём сравнения всех элементов с порогом 128:
mask = imread('mask.png')
mask = (mask > 128).astype('uint')

Посмотрите, как ведет себя склейка при изменении sigma (попробуйте три варианта значений при фиксированном количестве слоев в пирамидах) и при изменении количества слоев (попробуйте три варианта слоев при фиксированном sigma). Склейка должна выдавать качественный результат без видимых артефактов хотя бы с одним набором параметров.

5. (5 баллов) Подготовьте самостоятельно три набора изображений и масок для склейки и визуализируйте результаты функции. У вас должно получиться 3 качественных и интересных коллажа.

Детали заказа #94657

    Тип
    Решение задач
    Предмет
    Программирование
    Объем
    1 - 1 стр.
    Практическая часть
    ДА
  • Дата сдачи заказа: 23.04.2020
  • Статус: Архив

Хотите заказать решение задачи по специальности Программирование?

Заполните предварительную форму и получите ответ от экспертов с оценкой стоимости

Похожие заказы