質問: Pythonの画像処理ライブラリには、PILとOpenCVがあり、一部どちらにも共通の機能がありますが どのように使い分けたらいいのでしょうか? 具体的には、例えば以下の使い分けがよくわかりません。 ・ファイルからの画像読み込み ・ファイルへの画像書き込み ・色空間の変換 ・画像表示 また、numpy,pandas,matplotlibと連携しやすいのはどちらでしょうか?
回答: Redditに同じ様な質問/回答があったので、そこから一部引用&意訳します。 > > Pillowは単なる画像処理ライブラリであり、OpenCVは「コンピュータビジョン」用のライブラリです。 > > > 確かに機能が重複する部分は多い(つまりOpenCVにはかなりの画像処理機能が含まれている)が、 その扱う内容は大きく異なります。 > > > 極端な話、画像をカットやリサイズしたい時や、少しフィルタリングしたい場合は Pillow を使い、物事を「見よう」と思っているロボットを組みたい時には OpenCV を使用します。 > > > > > > Redditの他の回答にもある通り、Pillow は Python標準のパッケージマネージャーである `pip` で手軽にインストールできるでの、簡単な画像処理だけが必要なのであればほとんどのケースはPillowだけで十分だと思います。 逆に、最初から 「コンピュータビジョン」 を扱いたくて、OpenCVを必要としているなら、Pillowは使わずにOpenCVのみを利用するというのもありだと思います。 参考 *