ImageOps.unsharp_mask не работает с PIL

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

Я пробую PIL и его модуль ImageOps. Но похоже, что метод unsharp_mask работает неправильно. Он должен возвращать другое изображение, но возвращает объект ImagingCore, что я не знаю.

Вот код:

import Image
import ImageOps

file = '/home/phius/test.jpg'
img = Image.open(file)
img = ImageOps.unsharp_mask(img)
#This fails with AttributeError: save
img.save(file)

Я застрял на этом.

Что мне нужно: возможность делать некоторые настройки изображения, такие как autocontrast и unsharp_mask PIL, а также изменять размер, поворачивать и экспортировать в jpg, контролируя уровень качества.


person Phius    schedule 01.08.2012    source источник


Ответы (1)


Что вам нужно, так это команда фильтра на вашем изображении и модуль PIL ImageFilter [1], поэтому:

import Image
import ImageFilter

file = '/home/phius/test.jpg'
img = Image.open(file)
img2 = img.filter(ImageFilter.UnsharpMask) # note it returns a new image
img2.save(file)

Другие операции фильтрации также являются частью модуля ImageFilter[1] и применяются таким же образом. Преобразования (поворот, изменение размера) обрабатываются путем вызова functions[2] самого объекта изображения, т. е. img.resize. Этот вопрос касается качества JPEG Как настроить качество изображения с измененным размером в библиотеке изображений Python?

[1] http://effbot.org/imagingbook/imagefilter.htm

[2] http://effbot.org/imagingbook/image.htm

person Rory Hart    schedule 01.08.2012
comment
Большое спасибо, Рори. Остальные вещи (поворот, сохранение качества) я уже делал, просто выложил на случай, если кто-то предложит другую библиотеку. знак равно - person Phius; 01.08.2012