web-dev-qa-db-ja.com

Python 3の画像ライブラリ

画像の操作にPILの代わりに使用するpython-3とは何ですか?

154
banx

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

99
Janus Troelsen

Christoph Gohlkeは、3.3までのpythonバージョンのPIL(Windowsのみ)をビルドできました。 http://www.lfd.uci.edu/~gohlke/pythonlibs/

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

19
xob

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アプリケーションを作成するための大きなフレームワークであるため、このソリューションはかなり「重い」ことに注意してください。

14
Oleh Prypin

2012年3月30日の時点で、GitHubで画像を開くためにsloonzフォークを取得しようとして失敗しました。コンパイルできましたが、実際には動作しませんでした。また、gohlkeのライブラリをビルドしようとしましたが、それもコンパイルしましたが、画像を開くことができませんでした。誰かが先にPythonMagickについて言及しましたが、Windowsでしかコンパイルできません。 wxPython wikiのPythonMagick を参照してください。

PILは2009年に最後に更新され、WebサイトではPython 3ポートで作業していると書かれていますが、3年が経ち、メーリングリストは冷たくなっています。

Python 3画像操作の問題を解決するために、subprocess.call()を使用してImageMagickシェルコマンドを実行しています。この方法は機能します。

サブプロセスモジュールのドキュメント を参照してください。

7
s0mebody

Pillow libraryが必要な場合、Python 3にインストールする方法は次のとおりです。

pip3 install Pillow

それがうまくいかない場合(そうすべきです)、通常のpipを試してください:

pip install Pillow
6
speedplane

私のパッケージ mahotas on Pythonを使用できます。3. PILベースではなく、numpyベースです。

6
luispedro

必要なものによっては、 scikit-image が最良の選択であり、操作はPILおよびPillowの現在のバージョンをはるかに超えています。少なくとも枕と同じくらい、非常によく維持されます。また、基礎となるデータ構造はNumpyとScipyからのものであるため、コードが非常に相互運用可能です。枕が処理できない例:

Region Adjacency Graph Merging

Radon Transform

Histogram of oriented gradients

Approximate and subdivide polygons

gallery でその力を見ることができます。 このペーパー は、優れた入門書です。がんばろう!

2
linhares

Python3を使用している場合は、Python 2および3で機能するライブラリPILasOPENCVを使用することもできます。関数api呼び出しはPILまたはPillowと同じですが、内部的にOpenCVおよびnumpyと連携してロード、保存、画像を操作します。 https://github.com/bunkahle/PILasOPENCV をご覧になるか、pip install PILasOPENCVでインストールしてください。すべてのPIL機能がシミュレートされているわけではありませんが、最も一般的な機能が動作します。

0
bunkus