Библиотека изображений python — python imaging library

Использование OCR

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

Если у вас есть сканер документов на вашем телефоне, например Adobe Scan, вы, вероятно, сталкивались с использованием технологии OCR.

Аэропорты также могут использовать OCR для автоматизации процесса распознавания паспортов и извлечения из них информации.

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

SciPy

SciPy is primarily used for mathematical and scientific computations, but sometimes it can also be used for basic image manipulation and processing tasks using the submodule .At the end of the day, images are just multidimensional arrays, SciPy provides a set of functions that are used to operate n-dimensional Numpy operations. SciPy provides some basic image processing operations such as Face Detection, Convolution, Image Segmentation, Reading Images, Feature Extraction, and many more. Along with this, you also perform filtering, draw contour lines on images.

Check the below code for Blurring an image with SciPy:

from scipy import ndimage, misc
from matplotlib import pyplot as plt
f = misc.face()
b_face = ndimage.gaussian_filter(f, sigma=3)
figure, axis = plt.subplots(1, 2, figsize=(16, 8))

For more information, check official documentation: Link

Displaying image in Tkinter

The following program displays an image in a Tkinter
program.

show_tkinter.py

#!/usr/bin/python

from PIL import Image, ImageTk
from tkinter import Tk
from tkinter.ttk import Frame, Label
import sys

class Example(Frame):
  
    def __init__(self):
        super().__init__()   
         
        self.loadImage() 
        self.initUI()
        
        
    def loadImage(self):
        try:
            self.img = Image.open("tatrs.jpg")

        except IOError:
            print("Unable to load image")
            sys.exit(1)
        
    
    def initUI(self):
      
        self.master.title("Label")
        
        tatras = ImageTk.PhotoImage(self.img)
        label = Label(self, image=tatras)
        
        # reference must be stored
        label.image = tatras
        
        label.pack()
        self.pack()
        
        
    def setGeometry(self):
      
        w, h = self.img.size
        self.master.geometry(("%dx%d+300+300") % (w, h))
        

def main():
  
    root = Tk()
    ex = Example()
    ex.setGeometry()
    root.mainloop()  


if __name__ == '__main__':
    main()  

The program displays an image in the widget
of the Tkinter toolkit.

from PIL import Image, ImageTk

The is a Tkinter-compatible photo image.
It can be used everywhere Tkinter expects an image object.

tatras = ImageTk.PhotoImage(self.img)

We create a photo image.

label = Label(self, image=tatras)

The photoimage is given to the parameter of the
label widget.

label.image = tatras

In order not to be garbage collected, the image reference must be
stored.

w, h = self.img.size
self.master.geometry(("%dx%d+300+300") % (w, h))

The size of the window fits the image size.

Что мы еще не сделали

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

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

Вы также можете создать инструмент CLI. Он позволит вам запустить команду, включая местоположение изображения, а затем распечатать вывод сканера на ваш терминал или отправить его в базу данных или API. Если вы выбрали этот путь, Docopt – фантастический инструмент для создания инструментов командной строки с использованием Python.

Pillow blur image

The module contains definitions for a pre-defined
set of filters, which can be used with the method.

blur_image.py

#!/usr/bin/python

from PIL import Image, ImageFilter
import sys

try:
    img = Image.open("tatras.jpg")
    
except IOError:
    print("Unable to load image")    
    sys.exit(1)

blurred = img.filter(ImageFilter.BLUR)

blurred.save("blurred.png")

The program loads an image, creates a blurred image from the original
image, and saves the new image on disk.

from PIL import Image, ImageFilter

We import the and modules.

blurred = img.filter(ImageFilter.BLUR)

We apply the on the original image;
the operation returns a new modified image.

blurred.save("blurred.png")

With the method, we save the blurred image on
disk.

Pillow show image

In the first example we read an image file and show it in an external program.

show_image.py

#!/usr/bin/python

from PIL import Image
import sys

try:
    tatras = Image.open("tatras.jpg")

except IOError:
    print("Unable to load image")
    sys.exit(1)
    
tatras.show()

The program reads a JPG image and displays it in an external application.

from PIL import Image

From the PIL module, we include the class.

tatras = Image.open("tatras.jpg")

The method reads the image file. Pillow can read
over 30 different file formats.

tatras.show()

The method is mainly intended for debugging purposes.
It saves the image into a temporary file and displays it in external program.
This could be ImageMagic on Linux or Paint on Windows.

Конвертирование из JPG в PNG пример Pillow

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

Python

from PIL import Image
import sys

try:
tatras = Image.open(«tatras.jpg»)
except IOError:
print(«Unable to load image»)
sys.exit(1)

tatras.save(‘tatras.png’, ‘png’)

1
2
3
4
5
6
7
8
9
10

fromPIL importImage

importsys

try

tatras=Image.open(«tatras.jpg»)

exceptIOError

print(«Unable to load image»)

sys.exit(1)

tatras.save(‘tatras.png’,’png’)

Программа считывает изображение JPG и конвертирует его в PNG формат. Это делает в следующей строчке:

Python

tatras.save(‘tatras.png’, ‘png’)

1 tatras.save(‘tatras.png’,’png’)

Второй параметр метода нужен для уточнения итогового формата изображения.

Использование библиотеки PIL в Python

http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>yle=»margin-bottom:5px;»>Теги:  python  PIL

Откройте окно DOS и установите библиотеку:

Исходное изображение:

Очевидно, что картина немного большая, давайте ее укоротим:

После этого мы все работаем над beauty.jpg

Сохранить как PNG:

Превратись в старые черно-белые фотографии:

Измените цветовой канал изображения:

Нам часто приходится участвовать в волне нечетких операций, притворяясь:

Получить ее схему легко:

Наконец, увеличьте контраст в 5 раз по сравнению с начальным:

\

В библиотеке PIL так много модулей, усердно учитесь, будущее страны зависит от вас

Image ImageChops ImageColor ImageCrackCode ImageDraw
ImageEnhance ImageFile ImageFileIO ImageFilter ImageFont
ImageGL ImageGrab Imagemath ImageOps ImagePalette
ImagePath ImageQt ImageSequence ImageStat ImageTk
ImageWin

Интеллектуальная рекомендация

Наша страна — большая страна с далеко зашедшей винной культурой. Еще во времена династии Сун мы варили вкусные и мягкие спиртные напитки. Мы часто слышим, как старшие поколения говорят, что с возрасто…

1. Предположим, что вы tomcat6 и добавили библиотеку драйверов mysql в D: \ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ lib   2. Добавьте в «Tomcat 6.0 \ conf \ context.xml&ra…

4. Условное суждение После выполнения условного тестового выражения обычно возвращается «истина» или «ложь», так же как возвращаемое значение после выполнения команды равно 0 д…

1. Что такое куча? Стек: особый видПолное двоичное деревоструктура.    Большая корневая куча: полное двоичное дерево, удовлетворяющее тому, что любой узел больше, чем его дочерний узел.Большой; Неболь…

Вам также может понравиться

1. Введение Аполлон (Аполлон) — это НИОКР в Ctrip Framework SectorРаспределенный Центр конфигурацииМожно централизовать управление для управления различными средами, разными кластерами. После настройк…

               …

Список может быть изменен, но иногда вам необходимо создать серию немодифицируемых элементов, а кортеж может удовлетворить эти потребности. Значение, которое не может быть изменено в Python, называетс…

тема: код показан ниже: Ожидание является обратной величиной вероятности. Накопите все ожидаемые значения, чтобы получить: N + N / 2 +… + 1, и положите N, чтобы получить: N (1 + 1/2 +… +…

1. Ролевое управление фоновым менеджментом 1.1 Определение ролевой формы для управления ролями Определите форму роли в файле forms.py в каталоге администратора приложения. 1.2 Список всех ролей в упра…

Другие параметры PyTesseract

У Python-Tesseract есть больше возможностей, которые вы можете изучить. Например, вы можете указать язык с помощью флага lang:

pytesseract.image_to_string(Image.open(filename), lang='fra')

Это результат сканирования изображения без lang:

А теперь с lang:

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

Без flag lang скрипт пропустил некоторые французские слова, но после введения flag он смог обнаружить весь французский контент. Перевод невозможен, но все равно впечатляет. Официальная документация Tesseract включает в себя поддерживаемые языки в этом разделе.

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

print(pytesseract.image_to_osd(Image.open('downloaded_handwritten.png')))

На изображении не было информации о номере страницы, поэтому это не было обнаружено. Движок Tesseract способен извлекать информацию об ориентации текста на изображении и повороте. Уверенность в ориентации – это показатель уверенности двигателя в обнаруженной ориентации, которая действует как ориентир, а также показывает, что она не всегда на 100% точна. Раздел скрипта обозначает систему письма, используемую в тексте, и за ним также следует маркер уверенности.

Если бы мы следили за распознанными символами и их границами боксов, PyTesseract добивается этого с помощью pytesseract.image_to_boxes (Image.open (‘loaded_handwritten.png’)).

Это некоторые из возможностей PyTesseract среди других, такие как преобразование извлеченного текста в PDF-файл с возможностью поиска или вывод HOCR.

Reading image from URL

The next example reads an image from URL.

read_from_url.py

#!/usr/bin/python

from PIL import Image
import requests
import sys

url = 'https://i.ytimg.com/vi/vEYsdh6uiS4/maxresdefault.jpg'

try:
    resp = requests.get(url, stream=True).raw

except requests.exceptions.RequestException as e:  
    sys.exit(1)

try:
    img = Image.open(resp)

except IOError:
    print("Unable to open image")
    sys.exit(1)

img.save('sid.jpg', 'jpeg')    

The example reads an image from the URL and saves it on
disk.

import requests

We use the library to download the image.

resp = requests.get(url, stream=True).raw

We read the image as raw data.

img = Image.open(resp)

is created from the response object.

img.save('sid.jpg', 'jpeg')

The image is saved.

Introduction

As indicated by IDC, digital information will soar up to 175 zettabytes, and the immense piece of this information pictures. Data scientists need to (pre) measure these images before taking care of them into any Artificial Intelligence and deep learning models. They need to do the significant (and at times filthy) work before the pleasant part starts.

To handle a lot of information with effectiveness and speed without bargaining the outcomes Data scientists need to utilize picture preparing instruments for Artificial Intelligence and deep learning tasks.

In this article, I will drill down the most helpful image processing libraries in Python which are being utilized vigorously in Artificial intelligence and deep learning tasks. So let’s get started!

Scikit-Image

Scikit-Image is another great open-source image processing library. It is useful in almost any computer vision task. It is among one of the most simple and straightforward libraries. Some parts of this library are written in Cython ( It is a superset of python programming language designed to make python faster as C language). It provides a large number of algorithms which include segmentation, color space manipulation, geometric transformation, filtering, morphology, feature detection, and many more.

Scikit Image uses Numpy arrays as image objects. Let’s see how can we perform active contour operation in the scikit image. Active contour describes the boundaries of shapes in an image. 

Check the below code for active contour operation:

import numpy as np
import matplotlib.pyplot as plt
from skimage.color import rgb2gray
from skimage import data
from skimage.filters import gaussian
from skimage.segmentation import active_contour
image = data.astronaut()
# Data for circular boundary
s = np.linspace(0, 2*np.pi, 400)
x = 220 + 100*np.cos(s)
y = 100 + 100*np.sin(s)
init = np.array().T
# formation of the active contour
centre = active_contour(gaussian(image, 3),init, alpha=0.015, beta=10, gamma=0.001)
figure, axis = plt.subplots(1, 2, figsize=(7, 7))
ax.imshow(image, cmap=plt.cm.gray)
ax.set_title("Original Image")
ax.imshow(image, cmap=plt.cm.gray)

For more information, check official documentation: Link

Что мы будем использовать?

Для этого проекта OCR мы будем использовать библиотеку Python-Tesseract или просто PyTesseract, которая является оболочкой для Google Tesseract-OCR Engine.

Я выбрал его, потому что он полностью открыт и разрабатывается и поддерживается Google. Следуйте этим инструкциям, чтобы установить Tesseract на свой компьютер, поскольку от него зависит PyTesseract.

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

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

Помимо этого, мы также будем использовать библиотеку Pillow, которая является ответвлением Python Imaging Library (PIL) для обработки открытия и обработки изображений во многих форматах.

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

  • Textract: который может извлекать данные из PDF-файлов, но является тяжелым пакетом.
  • Pyocr: предлагает больше вариантов обнаружения, таких как предложения, цифры или слова.

ImageFont — Пишем текст на изображение используя Pillow

В следующем коде показано, как в Python можно написать текст на изображении с помощью Pillow.

На сайте есть отдельная статья по нанесению водяного знака на изображение:

  1. Как ставить водяные знаки на изображениях при помощи Python

Python

from PIL import Image, ImageDraw, ImageFont
import sys

try:
tatras = Image.open(«tatras.jpg»)
except:
print(«Unable to load image»)
sys.exit(1)

idraw = ImageDraw.Draw(tatras)
text = «High Tatras»

font = ImageFont.truetype(«arial.ttf», size=18)

idraw.text((10, 10), text, font=font)

tatras.save(‘tatras_watermarked.png’)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

fromPIL importImage,ImageDraw,ImageFont

importsys

try

tatras=Image.open(«tatras.jpg»)

except

print(«Unable to load image»)

sys.exit(1)

idraw=ImageDraw.Draw(tatras)

text=»High Tatras»

font=ImageFont.truetype(«arial.ttf»,size=18)

idraw.text((10,10),text,font=font)

tatras.save(‘tatras_watermarked.png’)

Для создания рисунка используется модуль .

Python

font = ImageFont.truetype(«arial.ttf», size=18)

1 font=ImageFont.truetype(«arial.ttf»,size=18)

Создается шрифт Arial с размером 18.

Python

idraw.text((10, 10), text, font=font)

1 idraw.text((10,10),text,font=font)

Сам текст наносится через метод . По умолчанию цвет шрифта белый.

Как настроить?

Начните с установки Pipenv, используя следующую команду через Pip (если вам нужно настроить его, обратитесь к этому).

$ pip install pipenv

Создайте каталог проекта и запустите проект, выполнив следующую команду:

$ mkdir ocr_server  cd ocr_server  pipenv install --three

Теперь мы можем активировать нашу виртуальную среду и начать установку наших зависимостей:

$ pipenv shell
$ pipenv install pytesseract Pillow 

Если вы не будете использовать Pipenv, вы всегда можете использовать подход Pip и Virtual Environment. Следуйте официальной документации, которая поможет вам начать работу с Pip и виртуальной средой:

Примечание. В этом случае вместо pipenv install Pillow будет команда pip install Pillow.

The ImageColor Module

Модуль ImageColor содержит функции для преобразования строки определяющую цвет в RGB кортеж. Этот модуль используется в Image.new и ImageDraw модуле.

Модуль ImageColor поддерживает следующие форматы строк:

  1. Шестнадцатеричные спецификаторы цвета, вида «#RGB» или «#RRGGBB». Например, «# ff0000»;
  2. RGB функции, вида «rgb(красный, зеленый, синий)». Например, «rgb(255,0,0)» и «rgb(100%, 0%, 0%)»;
  3. HSL функций (Тон-Насыщенность-Яркость) заданных в качестве «HSL (тон, насыщенность%, яркость%)», где тон цвета дается как угол между 0 и 360, насыщение значения между 0% и 100%, и яркость это значение от 0% до 100. Например, «hsl(0,100%, 50%)»;
  4. HTML названия цветов. Модуль ImageColor поддерживает около 140 стандартных названий цветов. Например «red» или «white».

Функции

loadImageFont.load(file) => объект шрифта

Загружает шрифт из указанного файла, и возвращает соответствующий объект шрифта.

load_pathImageFont.load_path(file) => объект шрифта

То же, что функция load, но ищет файл вместе c sys.path, если он не найден в текущем каталоге.

truetypeImageFont.truetype(file, size) => объект шрифта

Загружает TrueType или OpenType файл шрифта и создаёт объект со шрифтом заданного размера.

ImageFont.truetype(file, size, encoding=value) => объект шрифта

Загружает TrueType или OpenType файл шрифта и создаёт объект со шрифтом заданного размера. И задаёт кодировку: «UNIC» (Unicode), «Symb» (Microsoft Symbol), «ADOB» (Adobe Standard), «ADBE» (Adobe Expert), и «armn» (Apple Roman).

load_defaultImageFont.load_default() => объект шрифта

Загружает шрифт по умолчанию.

Создание рисунка в Pillow

У Pillow есть базовые возможности для создания 2D графики. Модуль предоставляет простую 2D графику для объектов . Мы можем создавать новые изображения, аннотации к ним, ретушировать существующие фото, а также сразу генерировать графику для веб.

Python

from PIL import Image, ImageDraw

# Создаем белый квадрат
img = Image.new(‘RGBA’, (200, 200), ‘white’)
idraw = ImageDraw.Draw(img)

idraw.rectangle((10, 10, 100, 100), fill=’blue’)

img.save(‘rectangle.png’)

1
2
3
4
5
6
7
8
9

fromPIL importImage,ImageDraw

 
# Создаем белый квадрат

img=Image.new(‘RGBA’,(200,200),’white’)

idraw=ImageDraw.Draw(img)

idraw.rectangle((10,10,100,100),fill=’blue’)

img.save(‘rectangle.png’)

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

Python

img = Image.new(‘RGBA’, (200, 200), ‘white’)

1 img=Image.new(‘RGBA’,(200,200),’white’)

Создается новое изображение, у которого режим «RGBA», размер 200х200 и белый фон.

Python

idraw = ImageDraw.Draw(img)

1 idraw=ImageDraw.Draw(img)

Из картинки создается объект . Теперь на нем можно что-то нарисовать.

Python

idraw.rectangle((10, 10, 100, 100), fill=’blue’)

1 idraw.rectangle((10,10,100,100),fill=’blue’)

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

Обрезка изображений через Pillow (crop)

Pillow также можно использовать для обрезки изображения. Это довольно легкий процесс, хотя он постигается методом проб и ошибок. Попробуем обрезать нашу картинку с медузой через :

Python

from PIL import Image

image = Image.open(‘jelly.jpg’)
cropped = image.crop((0, 80, 200, 400))
cropped.save(‘/path/to/photos/cropped_jelly.png’)

1
2
3
4
5

fromPIL importImage

image=Image.open(‘jelly.jpg’)

cropped=image.crop((,80,200,400))

cropped.save(‘/path/to/photos/cropped_jelly.png’)

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

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

Довольно унылый результат. Я ведь хотел получить «голову» медузы. Для быстрого получения правильных координат можно использовать Gimp или Photoshop. Он поможет определить координаты для следующего обрезания.

Python

from PIL import Image

image = Image.open(‘jelly.jpg’)
cropped = image.crop((177, 882, 1179, 1707))
cropped.save(‘/path/to/photos/cropped_jelly2.png’)

1
2
3
4
5

fromPIL importImage

image=Image.open(‘jelly.jpg’)

cropped=image.crop((177,882,1179,1707))

cropped.save(‘/path/to/photos/cropped_jelly2.png’)

При запуске кода результатом станет следующее обрезанное изображение:

Намного лучше!

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

Получение информации об изображении через Pillow

С помощью Pillow также можно получить подробную информацию об изображении. Рассмотрим небольшой пример:

Python

>>> from PIL import Image
>>> image = Image.open(‘jelly.jpg’)
>>> r, g, b = image.split()
>>> histogram = image.histogram()

>>> exif = image._getexif()
exif
{256: 1935,
257: 3411,
271: u’Panasonic’,
272: u’DMC-LX7′,
274: 1,
282: (180, 1),
283: (180, 1),
296: 2,
305: u’PaintShop Pro 14.00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00′,
306: u’2016:08:21 07:54:57′,
36867: u’2016:08:21 07:54:57′,
36868: u’2016:08:21 07:54:57′,
37121: ‘\x01\x02\x03\x00’,
37122: (4, 1),
37381: (124, 128),
37383: 5,
37384: 0,
37385: 16,
37386: (47, 10),
40960: ‘0100’,
40961: 1,
40962: 3968,
40963: 2232,
41495: 2,
41728: ‘\x03’,
41729: ‘\x01’,
41985: 0,
41986: 0,
41987: 0,
41988: (0, 10),
41989: 24,
41990: 0,
41991: 0,
41992: 0,
41993: 0,
41994: 0}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

>>>fromPIL importImage

>>>image=Image.open(‘jelly.jpg’)

>>>r,g,b=image.split()

>>>histogram=image.histogram()

384761,489777,557209,405004,220701,154786,55807,35806,21901,16242

>>>exif=image._getexif()

exif

{2561935,

2573411,

271u’Panasonic’,

272u’DMC-LX7′,

2741,

282(180,1),

283(180,1),

2962,

305u’PaintShop Pro 14.00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00′,

306u’2016:08:21 07:54:57′,

36867u’2016:08:21 07:54:57′,

36868u’2016:08:21 07:54:57′,

37121’\x01\x02\x03\x00′,

37122(4,1),

37381(124,128),

373835,

37384,

3738516,

37386(47,10),

40960’0100′,

409611,

409623968,

409632232,

414952,

41728’\x03′,

41729’\x01′,

41985,

41986,

41987,

41988(,10),

4198924,

41990,

41991,

41992,

41993,

41994}

В данном примере показано, как извлечь значение RGB (red, green, blue) изображения. Также показано, как получить гистограмму изображения

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

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

The ImageChops Module

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

Операции реализованы только для 8-битных изображений (например, «L» и «RGB»).

constantImageChops.constant(image, value) => изображение

Вернёт новый слой размером с указанное изображение и заполненный цветом указанным значением value (0-255).

duplicateImageChops.duplicate(image) => изображение

Копирует изображение.

invertImageChops.invert(image) => изображение

Инверсия изображением.

lighterImageChops.lighter(image1, image2) => изображение

Сравнивает два изображения, пиксель за пикселем, и возвращает новое изображение, содержащее “лёгкие” цвета.

darkerImageChops.darker(image1, image2) => изображение

Сравнивает два изображения, пиксель за пикселем, и возвращает новое изображение, содержащее “тёмные” цвета.

differenceImageChops.difference(image1, image2) => изображение

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

multiplyImageChops.multiply(image1, image2) => изображение

Накладывает два изображения друг на друга. Если умножить изображение с черным изображение, то результат будет черным.

screenImageChops.screen(image1, image2) => изображение

Накладывает два инвертированные изображения друг на друга.

addImageChops.add(image1, image2, scale, offset) => изображение

Добавляет два изображения, разделив результат на масштаб и добавив смещение. Масштаб по умолчанию 1.0, и смещение 0.0.

subtractImageChops.subtract(image1, image2, scale, offset) => изображение

Вычитание двух изображений, разделив результат на масштаб и добавив смещение. Масштаб по умолчанию 1.0, и смещение 0.0.

blendImageChops.blend(image1, image2, alpha) => изображение

То же, что функция blend в модуле Image.

compositeImageChops.composite(image1, image2, mask) => изображение

То же, что функция composite в модуле Image.

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

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

Adblock
detector