Python 3用の画像ライブラリ


154

画像の操作にPILの代わりにpython-3を使用していますか?


メディアモジュールを確認しましたか?(メディアのインポート)
inspectorG4dget

@ inspectorG4dget:メディアはpython3の標準ライブラリにありません
banx

PILも標準だとは思わなかった。しかし、私は間違っているようです
inspectorG4dget

2
@ inspectorG4dget:いいえ、そうです、PILは標準ライブラリにありません。
Janus Troelsen

PillowPyPIからインストールする必要がありPILます。これはPython 2でも推奨されるパッケージです。
Antti Haapala、2015

回答:


98

「フレンドリーなPILフォーク」は、Python 2および3で動作します。Githubプロジェクトでサポートマトリックスなどを確認してください。


4
それはまだ 2014年10月のように活発に開発されており、素晴らしいドキュメントがあり、あなたはpip3 install Image(私は知らずに枕を使っていました)、そしてあなたfrom PIL import Image。また現在はすべての主要なプラットフォームをサポートしています。python3のPILを探す場合、これは間違いなく選択です。
Yosh 2014年

19

Christoph Gohlkeが3.3バージョンまでのpythonバージョンのPIL(Windowsのみ)をビルドすることに成功しました:http ://www.lfd.uci.edu/~gohlke/pythonlibs/

私はPython 3.2で彼のバージョンのPILを試し、画像のオープン/作成/ピクセル操作/すべての作業を保存しました。


14

Qtはグラフィックスで非常にうまく機能します。私の意見では、PILよりも用途が広いです。

グラフィックス操作に必要なすべての機能を利用できますが、ベクターグラフィックスがあり、実際のプリンターもサポートされています。これらすべてを1つの統一された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

Pillowライブラリが必要です。Python3にインストールする方法は次のとおりです。

pip3 install Pillow

それでうまくいかない場合は(正常に動作するはずです)、通常の方法を試してくださいpip

pip install Pillow

3

必要なものに応じて、scikit-imageがPILや現在のバージョンのPillowをはるかに超える操作で最適な選択になる場合があります。少なくとも枕と同じくらい、非常によくメンテナンスされています。また、基になるデータ構造はNumpyとScipyからのものであり、そのコードは信じられないほど相互運用可能です。枕が処理できない例:

リージョン隣接グラフのマージ

ラドン変換

方向付けられた勾配のヒストグラム

ポリゴンの近似と細分割

あなたはギャラリーでその力を見ることができます。 このペーパーはそれへのすばらしい導入を提供します。幸運を!


0

Python3を使用している場合は、Python 2および3で機能するライブラリPILasOPENCVを使用することもできます。関数api呼び出しはPILまたは枕と同じですが、内部的にOpenCVおよびnumpyで機能して、画像の読み込み、保存、操作を行います。見てhttps://github.com/bunkahle/PILasOPENCVまたはピップPILasOPENCVをインストールすると、それをインストールします。すべてのPIL関数がシミュレーションされたわけではありませんが、最も一般的な関数が機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.