2021/02/16

Pythonの6つの主流の画像処理ライブラリ

WRITER: m.yang

概要

最近、ディープラーニングで視覚関連のことを研究しています。そして、Pythonの画像処理ライブラリを使用して画像を読み取り、一連の画像処理タスクを実行する必要があります。

しかし、Pythonには画像処理に使用できるライブラリがたくさんあり、ライブラリごとに使用方法が多少異なり、画像の読み取りと保存の方法も大きく異なります。これらのライブラリを注意を払わないと、いろんな問題が発生します。

そこで、6つの主流のPythonイメージライブラリに注意が必要な基本的な使用方法とポイントを要約しました:

  1. OpenCV                                            https://docs.opencv.org/master/d6/d00/tutorial_py_root.html
  2. PIL(pillow)                                     https://pillow.readthedocs.io/en/stable/
  3. matplotlib.image                         https://matplotlib.org/3.3.3/tutorials/introductory/images.html
  4. skimage                                            https://scikit-image.org/docs/dev/index.html
  5. imageio                                            https://imageio.readthedocs.io/en/stable/
  6. keras.preprocessing.image   https://keras.io/api/preprocessing/image/

画像の読み込み

画像処理ライブラリを使用する際に注意すべき最も重要なことは、画像の読み取り部分です。画像を読み取った後の保存方法が異なると、問題が発生する可能性があります。

1.OpenCV:画像の読み込み後のタイプ: numpy.ndarray; 画像のチャンネル配列がBGRであって、主流のRGBではない

2. PIL(pillow) : 画像の読み込み後のタイプ:  Object対象; numpy.asarray() または numpy.array() 関数を使用して、numpy.ndarrayに変換できます

3. matplotlib.image:画像の読み込み後のタイプ: numpy.ndarray

4. skimage : 画像の読み込み後のタイプ: numpy.ndarray

5. imageio : 画像の読み込み後のタイプ: numpy.ndarray

6. keras.preprocessing.image : 画像の読み込み後のタイプ: Object対象 

 

まとめ

もし6つの画像ライブラリの性能を比較すると、スピードと画像処理の全面性から考えて、一番強いのはOpenCVです。

他のライブラリもそれぞれのメリットがあります。知ってから、自分の好みによって、適当なライブラリを選べば良いです。

m.yang

m.yang

AIエンジニア
20年新卒