Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методички для лабораторных / Лабораторная работа №9 методичка

.docx
Скачиваний:
16
Добавлен:
04.06.2023
Размер:
23.16 Кб
Скачать

Лабораторная работа №9

Анализ возможностей нейросетевых технологий, используемых для повышения разрешения изображений

Цель

Целью данной работы является создание модели, которая реализует логику обработки фотографий и улучшение их качества.

Задание

  1. Подготовить черно-белую фотографию хорошего качества для первой модели и цветную для второй.

  2. Найти инструмент по ухудшению качества (посредством «сжатия») изображения, например, https://online-photo-converter.com/ru/quality-image.

  3. Создать две модели, реализующие работу с фотографиями.

  4. Постепенно уменьшать качество фото, а также менять параметры моделей для анализа их поведения.

  5. Сформулировать выводы.

  6. Ответить на контрольные вопросы.

Краткая теория

Для любого веб-сайта поддержание качества изображений становится сложной задачей, потому что высокое качество изображения приведет к медленной скорости загрузки целевых страниц, что может привести к ухудшению взаимодействия с пользователем.

Всякий раз, когда кто-либо сталкивается с изображением плохого качества, пользователь теряет интерес. Изображение отличного качества заставляет людей оставаться на странице и продолжать взаимодействовать с контентом.

Вот почему действия по улучшению изображения играют жизненно важную роль в возвращении деталей и делают изображения визуально привлекательными для конечных пользователей.

Изображения редактируются таким образом, чтобы вернуть динамический диапазон данного кадра. В результате изображения выглядят более яркими и профессиональными. Действие по улучшению изображения не изменит кадр, добавив что-либо в кадр.

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

Выполнение

Преобразование степенного закона

Интенсивность I(i,j) относится к значению пикселя, расположенного на изображении. Это значение представляет интенсивность этого конкретного пикселя на фотографии и находится в диапазоне от 0 до 255, в то время как i и j относятся к значениям строки и столбца соответственно.

Для метода преобразования по степенному закону существует оператор, называемый гамма-коррекцией, который используется в этом методе для улучшения изображения.

Ниже приведено уравнение оператора на уровне пикселей.

Для большинства сценариев значение k в этом уравнении равно 1, поэтому сосредоточимся только на значении гаммы.

Таким образом, можно написать уравнение, как показано ниже.

NumPy и OpenCV — это две библиотеки, которые используются в этом примере.

Листинг 1. Реализация первого метода

import cv2

import numpy as np

from google.colab.patches import cv2_imshow

im = cv2.imread('10.jpg')

im = im/255.0

im2 = cv2.pow(im,0.6)

im = im*255.0

im2 = im2*255.0

cv2_imshow(im)

cv2_imshow(im2)

cv2.waitKey(1110)

Обратите внимание, что в листинге используются значение гаммы 0,6 и изображение с именем "10.jpg", которое является образцом изображения. Вы можете установить имя вашего изображения в этом месте.

Итак, после написания кода можно получить изображение, которое светлее по сравнению с исходной версией.

Теперь изменим значение гаммы на 1,5 и увидим, что вскоре изображение становится темнее. В этом конкретном примере значение гаммы представляет собой то, как можно отобразить изображение в цифровом виде.

Человеческий мозг использует гамма-коррекцию для понимания изображения, а значение гаммы является наилучшим отображением контраста в картинках на цифровых экранах. Это основное преимущество использования инструмента преобразования по степенному закону для получения наилучшего коэффициента контрастности изображений и импровизации динамического диапазона, чтобы оно выглядело более броским.

  1. Повторите выполнение метода с различными значениями гамма-коррекции, но одним с изображением.

  2. Повторите выполнение метода с одним значением гамма-коррекции, но фотографиями разного качества.

  3. Сделайте выводы.

Метод, известный как Image Inverse (Инверсное изображение)

Все цветные изображения обычно имеют три цветовых канала, а именно красный, зеленый и синий. Они также известны как RGB в мире графики. Итак, в этом примере, чтобы изменить цветное изображение, настраивается их интенсивность, вычитая их текущие значения из 255.

  1. На первом этапе вам нужно извлечь каждое значение интенсивности каналов. И чтобы извлечь значение, можно использовать Python Imaging Library.

  2. После чего необходимо понять, в каком режиме система считывает образ

  3. Напечатать все значения красного, зеленого и синего каналов всех пикселей изображения

  4. Применить оператор обратного изображения к фотографии, чтобы вернуть цвета

Листинг 2. Реализация второго метода

import scipy.misc import cv2 import imageio from scipy import misc from google.colab.patches import cv2_imshow from PIL import Image im = cv2.imread('2.jpg') im_array = np.asarray(im) im_inverse = 255 - im_array im_result = Image.fromarray(im_inverse) imageio.imwrite('result.tiff',im_result) im1 = cv2.imread('result.tiff') cv2_imshow(im) cv2_imshow(im1)

Проведите аналогичные исследования, как и в первом методе. Приведите пояснения получившихся результатов.

Контрольные вопросы

  1. Что такое Python Imaging Library?

  2. Какие библиотеки используются в данной работе?

  3. В чем суть метода Image Inverce?

Список литературы

  1. https://www.researchgate.net/publication/321168450_Inversion_with_respect_to_a_Horocycle_of_a_Hyperbolic_Plane_of_Positive_Curvature

  2. https://pythonru.com/biblioteki/osnovnye-vozmozhnosti-biblioteki-python-imaging-library-pillow-pil