Бібліотека зображень для Python 3


154

Що використовує python-3 замість PIL для маніпулювання зображеннями?


Ви перевірили медіа-модуль? (імпортні засоби масової інформації)
inspectorG4dget

@ inspectorG4dget: медіа немає в стандартній бібліотеці python3
banx

Я не думав, що і PIL був стандартним. Але схоже, що я помиляюся
inspectorG4dget

2
@ inspectorG4dget: Ні, ви праві, PIL відсутній у стандартній бібліотеці.
Янус Трольсен

Слід встановити Pillowз PyPI, що має бути заміною для спадання PIL; це також кращий пакет на Python 2.
Антті Хаапала

Відповіді:


98

Подушка "дружелюбна вилка PIL" працює на Python 2 і 3 . Ознайомтеся з проектом Github щодо підтримки матриці тощо.


4
Він все ще активно розробляється, як на жовтень 2014 року, має чудовий документ , ви можете pip3 install Image(я використовував подушку, не знаючи), і виfrom PIL import Image . Він також підтримує всі основні платформи зараз. Шукаючи PIL для python3, це, безумовно, вибір.
Йош

19

Крістофу Голке вдалося створити PIL (лише для Windows) для версій python до 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/

Я спробував його версію PIL з Python 3.2, і зображення відкрити / створити / маніпулювати пікселями / зберегти всю роботу.


14

Qt дуже добре працює з графікою. На мій погляд, він більш універсальний, ніж PIL.

Ви отримуєте всі необхідні функції для маніпуляцій із графікою, але є також векторна графіка та навіть підтримка справжніх принтерів. І все це в одному єдиному API, QPainter.

Для використання Qt вам потрібна прив'язка Python для цього: PySide або PyQt4 .
Вони обидва підтримують Python 3.

Ось простий приклад, який завантажує зображення у форматі JPG, малює антиаліазний коло радіусом 10 за координатами (20, 20) кольором пікселя, який був у цих координатах, і зберігає модифіковане зображення як файл PNG:

from PySide.QtCore import *
from PySide.QtGui import *

app = QCoreApplication([])

img = QImage('input.jpg')

g = QPainter(img)
g.setRenderHint(QPainter.Antialiasing)
g.setBrush(QColor(img.pixel(20, 20)))
g.drawEllipse(QPoint(20, 20), 10, 10)
g.end()

img.save('output.png')

Але зауважте, що це рішення є досить «важкою вагою», оскільки Qt є великою основою для створення GUI-додатків.


7

Станом на 30 березня 2012 року я намагався не отримати вилку sloonz на GitHub для відкриття зображень. Я отримав це для складання нормально, але це насправді не спрацювало. Я також спробував створити бібліотеку Голка, і вона також збиралася, але не могла відкрити жодні зображення. Хтось згадував PythonMagick вище, але він компілюється лише в Windows. Дивіться PythonMagick на вікі wxPython .

PIL востаннє оновлювався в 2009 році, і хоча на веб-сайті йдеться, що вони працюють над портом Python 3, минуло 3 роки, і список розсилки замерз.

Для вирішення моєї проблеми з зображенням Python 3 я використовую subprocess.call()для виконання команд оболонки ImageMagick. Цей метод працює.

Дивіться документацію про підпроцесорний модуль .


6

Ви можете використовувати мої пакети махоти на Python 3. Це на базі нуме, а не на основі PIL.


6

Вам потрібна бібліотека Подушка , ось як її встановити на Python 3:

pip3 install Pillow

Якщо це не працює для вас (слід), спробуйте нормально pip:

pip install Pillow

3

Залежно від того, що потрібно, scikit-образ може бути найкращим вибором, маніпуляції виходять за рамки PIL та поточної версії Подушки. Дуже доглянута, принаймні стільки, як Подушка. Також основні структури даних походять від Numpy та Scipy, що робить його код неймовірно сумісним. Приклади, з якими подушка не справляється:

Об’єднання графіків суміжності регіонів

Радонова трансформація

Гістограма орієнтованих градієнтів

Орієнтовні та підрозділені багатокутники

Її потужність ви можете побачити в галереї . Ця стаття забезпечує велике вступ до неї. Удачі!


0

Якщо ви перебуваєте на Python3, ви також можете використовувати бібліотеку PILasOPENCV, яка працює в Python 2 і 3. Функції api-дзвінків такі ж, як у PIL або подушці, але внутрішньо вона працює з OpenCV та numpy для завантаження, збереження та маніпулювання зображеннями. Погляньте на https://github.com/bunkahle/PILasOPENCV або встановіть його за допомогою установки pip PILasOPENCV. Не всі функції PIL були імітовані, але найпоширеніші функції працюють.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.