Обработка изображений в Python?

Недавно я столкнулся с проблемой, которая требует, по крайней мере, базовой обработки изображений. Могу ли я сделать это на Python, и если да, то с помощью чего?

Обработка изображений в реальном времени с использованием PyPy: morepypy.blogspot.com/2011/07/…

Mikhail 15.10.2011 15:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
81
1
98 156
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

На самом деле есть замечательный Библиотека изображений Python (PIL). Это дает вам возможность изменять существующие изображения, включая возможности сглаживания, и создавать новые изображения с текстом и т. д. Вы также можете найти достойное вводное руководство в справочнике PIL, представленном на вышеупомянутом сайте.

Вы когда-нибудь пользовались Google, прежде чем задать этот вопрос? :-) Я не говорю, что вы должен, просто мне кажется немного забавным ответить на свой вопрос менее чем за минуту.

Alexandra Franks 18.09.2008 21:52

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

akdom 18.09.2008 22:17

Из FAQ: Также совершенно нормально задать свой вопрос по программированию и ответить на него, но притвориться, что вы находитесь в режиме Jeopardy: сформулируйте его в форме вопроса. Хотя я думаю, что на этот вопрос может легко ответить любой, кто в этом нуждается, с помощью поиска в Google ...

Martin W 18.09.2008 22:36

@MartinW - Я нашел этот вопрос через поиск Google

Bulwersator 18.11.2013 17:24
Ответ принят как подходящий

Самая известная библиотека - PIL. Однако, если вы просто выполняете базовые манипуляции, вам, вероятно, лучше использовать привязки Python для ImageMagick, которые будут намного эффективнее, чем написание преобразований на Python.

Я думаю, у вас есть это обратное: PIL предоставляет только самые базовые функции barebone-версии, но он прекрасно интегрируется с графическими интерфейсами Python. IM намного более полнофункциональный, но требует некоторой ручной работы с буферами для обмена туда и обратно для интеграции с графическим интерфейсом.

SilverbackNet 10.08.2011 06:48

Скажем так, грустно, но Швы PIL отказаться от изделий и он даже не загружает файлы BMP, созданные с помощью Paint. Если вы заглянете на веб-страницу проекта, вы поймете это, поищите трекер ошибок (нет), активность в списке рассылки, SCM, ...

sorin 03.10.2011 20:07
Подушка is a fork of PIL that is being maintained and developed. It's probably better to use it instead.
David Johnstone 06.09.2013 14:45

Если вы создаете собственный эффект обработки изображений, вам может пригодиться PythonPixels. http://halfhourhacks.blogspot.com/2008/03/pythonpixels.html Он предназначен для написания и экспериментов с обработкой изображений.

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

У вас также есть подход к обработке изображений, основанный на «стандартных» научных модулях: SciPy имеет целый пакет, посвященный обработке изображений: scipy.ndimage. Scipy - это, по сути, стандартный пакет общих численных расчетов; он основан на де-факто стандартном модуле обработки массивов NumPy: изображениями также можно управлять как массивом чисел. Что касается отображения изображений, Матплотлиб (также часть «научной трилогии») делает отображение изображений довольно просто.

SciPy все еще активно поддерживается, так что это хорошее вложение в будущее. Кроме того, SciPy в настоящее время также работает с Python 3, а Python Imaging Library (PIL) - нет.

Для справки в будущем ndimage в любом случае требует PIL.

davidtbernal 20.11.2011 12:44

@notJim: не так ли? PIL не указан в зависимостях SciPy от MacPorts, и я могу выполнить import scipy без установки PIL (import Image не работает с ImportError).

Eric O Lebigot 20.11.2011 13:05

Да, когда я пытался прочитать изображение с помощью ImRead, я получил ошибку «поднять ImportError (« Не удалось импортировать библиотеку изображений Python (PIL) »»

davidtbernal 20.11.2011 13:11

@notJim: Это правда, что SciPy полагается на PIL для чтения изображений (я пробовал с «простым» файлом JPEG, и он потерпел неудачу, как и в вашем примере). SciPy все еще может делать изображение обработка без PIL (PIL является зависимостью необязательный).

Eric O Lebigot 20.11.2011 13:16

В зависимости от того, что вы подразумеваете под «обработкой изображений», лучшим выбором могут быть библиотеки на основе numpy: махотас, scikits.image или scipy.ndimage. Все это работает на основе массивов numpy, поэтому вы можете смешивать и сопоставлять функции из одной библиотеки и другой.

Я запустил веб-сайт http://pythonvision.org, на котором есть больше информации об этом.

«Scikits.image SciKit (набор инструментов для SciPy) расширяет scipy.ndimage, чтобы обеспечить универсальный набор процедур обработки изображений». Интересно, почему они не внесли прямой вклад в ndimage.

endolith 23.11.2011 07:52

Все эти пакеты имеют разную внутреннюю структуру. По крайней мере, мой пакет mahotas взял много кода из ndimage.

luispedro 25.11.2011 20:35

scikit-image теперь размещен по адресу scikit-image.org

Stefan van der Walt 27.02.2013 19:54

Спасибо. Обновил мой ответ

luispedro 27.02.2013 20:43

Ссылка scipy.ndimage мертва. Текущая ссылка, скорее всего: scipy.github.io/devdocs/tutorial/ndimage.html

kmonsoor 07.02.2016 23:30

Для завершения списка: opencv http://opencv.willowgarage.com/documentation/python/index.html

OpenCV сейчас на opencv.org

Nianliang 19.07.2013 19:54

VIPS должен быть быстрым и использовать несколько процессоров:

https://github.com/libvips/libvips/wiki/Speed-and-memory-use

Другие вопросы по теме