Улучшение фотографий с помощью техники программирования Python

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

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

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

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

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

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

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

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

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

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

Начнем с преобразования степенного закона, а затем обсудим инверсное изображение:

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

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

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

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

O(i,j) = kI(i,j)^gamma

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

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

p(i,j) = I(i,j)^gamma

Теперь мы будем использовать некоторые библиотеки для обеспечения эффективной работы.

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

Ниже приведен скрипт Python, который мы напишем здесь. Любой стандарт Агентство веб-разработки Python будет использовать этот скрипт.

import cv2
import numpy as np
 
im = cv2.imread('boat.tiff')
im = im/255.0
im_power_law_transformation = cv2.pow(im,0.6)
cv2.imshow('Original Image',im)
cv2.imshow('Power Law Transformation',im_power_law_transformation)
cv2.waitKey(0)

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

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

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

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

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

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

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

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

Давайте рассмотрим другой метод, известный как Image Inverse:

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

Итак, в этом примере, чтобы изменить цветное изображение, мы собираемся настроить их интенсивность, вычитая их текущие значения из 255.

@O_R(i,j) = 255 - R(i,j)
O_G(i,j) = 255 - G(i,j)
O-B)i,j) = 255 - B(i,j)

Для упрощения этого конкретного примера мы собираемся использовать изображение в масштабе grscale и применить оператор.

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

Например, вы хотите извлечь значение RGB в точке расположения пикселя (325, 432).

Вы можете выполнить этот процесс, написав приведенный ниже фрагмент кода.

из изображения импорта PIL

im = Image.open('baboon.png')
print im.getpixel((325,432))

Как вы могли догадаться, метод getpixel возвращает значение пикселя в заданной позиции.

Однако, если вы запустите сценарий, вы получите случайное число, которое не будет представлять значение RGB для этого конкретного пикселя.

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

print im.mode

Если на выходе отображается «P», это означает, что изображение считывается в режиме палитры, поэтому вам придется преобразовать изображение в режим RGB с помощью приведенного ниже кода.

rgb_im = im.convert('RGB')

Как только вы напишите это, предположительно, вы получите что-то вроде (187, 168 138). Это значение показывает три разных канала, таких как красный, зеленый и синий, со значениями 180, 168 и 138 соответственно.

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

из изображения импорта PIL

im = Image.open('baboon.png')
rgb_im = im.convert('RGB')
print rgb_im.getpixel((325,432))

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

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

из изображения импорта PIL

im = Image.open('baboon.png')
rgb_im = im.convert('RGB')
width, height = im.size
 
for w in range(width):
    for h in range(height):
        print rgb_im.getpixel((w,h))

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

Для этого напишите приведенный ниже фрагмент кода.

import scipy.misc
from scipy import misc
from scipy.misc.pilutil import Image
 
im = Image.open('boat.tiff')
im_array = scipy.misc.fromimage(im)
im_inverse = 255 - im_array
im_result = scipy.misc.toimage(im_inverse)
misc.imsave('result.tiff',im_result)

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

Вы получите перевернутое изображение. Белые или яркие картинки в рамке стали бы темнее и наоборот.

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

Вывод

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

Я хотел бы узнать ваше мнение об этой теме, так что не стесняйтесь делиться своими комментариями ниже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *