Python 3 용 이미지 라이브러리


154

이미지 조작을 위해 PIL 대신 python-3을 사용하는 것은 무엇입니까?


미디어 모듈을 확인 했습니까? (미디어 가져 오기)
inspectorG4dget

@ inspectorG4dget : 미디어가 python3의 표준 라이브러리에 없습니다
banx

PIL도 표준이라고 생각하지 않았습니다. 하지만 내가 틀린 것 같습니다
inspectorG4dget

2
@ inspectorG4dget : 아니요, 맞습니다. PIL은 표준 라이브러리에 없습니다.
Janus Troelsen 2013

하나는 PillowPyPI에서 설치 해야하며 PIL; 이것은 Python 2에서도 선호되는 패키지입니다.
Antti Haapala 2015

답변:


98

"친숙한 PIL 포크" Pillow 는 Python 2 및 3에서 작동합니다 . 지원 매트릭스 등 은 Github 프로젝트 를 확인하십시오 .


4
그것은되어 여전히 활발하게 개발되고 년 10 월 2014 년 같은 멋진의 문서가 , 당신은 할 수있다 pip3 install Image(I 모르게 베개를 사용했다), 그리고 당신을from PIL import Image . 또한 현재 모든 주요 플랫폼을 지원 합니다 . python3에 대한 PIL을 찾을 때 이것은 확실히 선택입니다.
Yosh

19

Christoph Gohlke는 Python 버전 3.3까지의 PIL (Windows 전용)을 빌드했습니다. http://www.lfd.uci.edu/~gohlke/pythonlibs/

나는 그의 버전의 PIL을 Python 3.2로 시도하고 이미지 열기 / 생성 / 픽셀 조작 / 모든 작업을 저장했습니다.


14

Qt는 그래픽과 매우 잘 작동합니다. 제 생각에는 PIL보다 다재다능합니다.

그래픽 조작에 필요한 모든 기능을 사용할 수 있지만 벡터 그래픽과 실제 프린터도 지원합니다. 그리고 하나의 균일 한 API에서이 모든, QPainter.

Qt를 사용하려면 Python 바인딩이 필요합니다 : PySide 또는 PyQt4 .
둘 다 Python 3을 지원합니다.

다음은 JPG 이미지를로드하고 해당 좌표에있는 픽셀의 색상으로 (20, 20) 좌표 에 반경 10 의 앤티 앨리어싱 된 원을 그리고 수정 된 이미지를 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

2012 년 3 월 30 일 현재 GitHub에서 sloonz 포크를 사용하여 이미지를 열지 못했습니다. 나는 그것을 잘 컴파일했지만 실제로 작동하지 않았습니다. 나는 또한 gohlke의 라이브러리를 구축하려고 시도했지만 컴파일되었지만 이미지를 열지 못했습니다. 누군가 위에서 PythonMagick을 언급했지만 Windows에서만 컴파일됩니다. wxPython wiki에서 PythonMagick을 참조하십시오 .

PIL은 2009 년에 마지막으로 업데이트되었습니다. 웹 사이트에서는 Python 3 포트에 대해 작업하고 있다고 말하지만 3 년이 지났고 메일 링리스트가 식었습니다.

Python 3 이미지 조작 문제를 해결 subprocess.call()하기 위해 ImageMagick 셸 명령을 실행 하는 데 사용 하고 있습니다. 이 방법이 작동합니다.

하위 프로세스 모듈 설명서를 참조하십시오 .



6

당신은 원하는 베개 라이브러리를 여기 파이썬 3에 설치하는 방법입니다 :

pip3 install Pillow

그래도 작동하지 않으면 정상으로 시도하십시오 pip.

pip install Pillow

3

필요한 것에 따라 scikit-image 가 최선의 선택이 될 수 있으며 PIL과 현재 버전의 Pillow를 넘어서는 조작이 가능합니다. 적어도 Pillow만큼 잘 관리되어 있습니다. 또한 기본 데이터 구조는 Numpy와 Scipy의 코드이므로 코드를 매우 상호 운용 할 수 있습니다. 베개가 처리 할 수없는 예 :

영역 인접 그래프 병합

라돈 변환

지향 그라디언트의 히스토그램

다각형 근사화 및 세분화

갤러리 에서 그 힘을 볼 수 있습니다 . 이 문서 는 이에 대한 훌륭한 소개를 제공합니다. 행운을 빕니다!


0

Python3를 사용하는 경우 Python 2 및 3에서 작동하는 라이브러리 PILasOPENCV를 사용할 수도 있습니다. 함수 API 호출은 PIL 또는 pillow에서와 동일하지만 내부적으로 OpenCV 및 numpy와 함께 작동하여 이미지를로드, 저장 및 조작합니다. 한 번 봐 가지고 https://github.com/bunkahle/PILasOPENCV을 하거나 PILasOPENCV를 설치 핍으로 설치합니다. 모든 PIL 함수가 시뮬레이션 된 것은 아니지만 가장 일반적인 함수가 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.