Anaconda に「OpenCV」をインストール

2021年10月31日日曜日

Anaconda Python

t f B! P L

スポンサーリンク

はじめに

Anaconda 環境に OpenCV をインストールする手順を解説します。

Anaconda 本体はインストールされている前提で話が進みます。もしインストールされていなければ、以下の記事を参考にインストールしてください。

【関連記事】
Anacondaのインストール (Mac OS編)

今回 OpenCV をインストールするのに使用した環境は次のとおり。

ツール バージョン
Anaconda 4.8.2
Python 3.9

環境の作成

conda create で OpenCV をインストールする環境を「py39」という名前で作ります。

conda create -n py39 python=3.9

作成した環境をアクティブにします。

conda activate py39

OpenCVのインストール

上で作った環境に OpenCV をインストールします。

OpenCV のインストールは次のコマンドを使用します。

conda install opencv

また、画像やデータを視覚的に表示するライブラリの Matplotlib インストールします。

conda install matplotlib

インストールの確認

インストールが完了したら、OpenCV のモジュールを Python から読み込めるか確認しておきます。Python を対話モードで起動して、以下の import cv2cv2.__version__ の2行を入力します。

(py39) $ python3.9
Python 3.9.6 (default, Aug 18 2021, 12:38:10) 
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.3'
>>> 

上の結果のように、OpenCV のバージョンが表示されていれば OK です。

スポンサーリンク

VSCode + Jupyter 拡張機能の準備

今回は、VSCode 拡張機能の Jupyter を使って OpenCV で画像処理を行っていきたいと思います。この拡張機能を入れると、VSCode 上で Jupyter Notebook が使えるので、普段から VSCode を使っている人にオススメです。

enter image description here

VSCode のインストール

VSCode のインストール方法は… ってのは説明不要だと思いますので、普通にダウンロードして入れておきましょう。

拡張機能 Jupyter のインストール

拡張機能 Jupyter は、VS Code の拡張機能の画面で、検索窓に「Jupyter」と入力すれば検索結果の先頭に出てきます。

インストールしたらコマンドパレットを開き、検索窓に「Jupyter」と入力し、出てきた候補から「Jupyter: Create New Blank Notebook」を選択します。

次に、使用する Python の環境を聞かれたら、OpenCV をインストールした環境を選択します。
今回は「py39」という名前でAnacondaの環境を作ったので、そいつを選択します。

画像処理を試してみよう

OpenCV で簡単な画像処理をやってみましょう。

読み込む画像の準備

まず、画像の準備をします。今回は Linux ペンギンくんのロゴを使って OpenCV の画像処理を試してみます。

Linux ペンギンくんの画像は、以下の素材サイトからダウンロードできます。

Wallpaperbetter - Linuxロゴ

画像を表示する

OpenCV の感触を掴むために、単純に画像を表示する処理を OpenCV を使って書きます。

最初は OpenCV と Matplotlib が Python のコード上から使えるようにインポートします。

import cv2
import matplotlib.pyplot as plt

cv2.imread 関数で画像ファイルを読み込みます。Linux ペンギンくんの画像をダウンロードしたパスを指定しましょう。この関数は画像のパスが間違っていてもエラーにはならず、後続の処理が実行されるので注意しましょう。

img = cv2.imread('/path/to/linux.jpg') #画像の読み込み

OpenCV では色の並びは BGR ですが、Matplotlib では RGB を前提に画像の表示を行うため、cv2.cvtColor 関数で BGR → RGB への変換を行い、最後に画像を表示します。

img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)   #BGR -> RGB変換
plt.imshow(img_rgb)

色の変換

ただ、画像を表示するだけでは面白くないので、画像をグレースケールに変換して表示してみます。グレースケールへの変更は cv2.cvtColorcv2.COLOR_BGR2GRAY スイッチを指定します。

glay = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)     #グレースケール変換

コードの挿入位置と、実行結果は次のとおり。
enter image description here

画像の保存

画像を保存する時は、cv2.imwrite 関数を使用します。1つ目の引数に保存先、2つ目の引数には保存する画像データを指定します。

上でグレースケールに変換した Linux ペンギンくんを保存する場合は、次のようになります。

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)     #グレースケール変換
cv2.imwrite('/path/to/linux_glay.jpg', gray)     #画像を保存

スポンサーリンク

補足

OpenCV が対応している画像フォーマット

公式にも書かれているが、imread 関数で読み込めるが画像のフォーマットは次のとおりとなっている。普段よく使う画像フォーマットをはカバーされているが、gif には対応していないようだ。

-   Windows bitmaps - *.bmp, *.dib (always supported)
-   JPEG files - *.jpeg, *.jpg, *.jpe (see the  _Note_  section)
-   JPEG 2000 files - *.jp2 (see the  _Note_  section)
-   Portable Network Graphics - *.png (see the  _Note_  section)
-   WebP - *.webp (see the  _Note_  section)
-   Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm (always supported)
-   PFM files - *.pfm (see the  _Note_  section)
-   Sun rasters - *.sr, *.ras (always supported)
-   TIFF files - *.tiff, *.tif (see the  _Note_  section)
-   OpenEXR Image files - *.exr (see the  _Note_  section)
-   Radiance HDR - *.hdr, *.pic (always supported)
-   Raster and Vector geospatial data supported by GDAL (see the  _Note_  section)

Currently, the following file formats are supported:

まとめ

Anaconda 環境に、OpenCV をインストールする方法から、簡単な使い方を紹介してきました。

OpenCV は、簡単な画像処理から、顔認識などの複雑な機械学習の分野でも使われるライブラリなので、是非とも覚えておきたいところです。

スポンサーリンク

QooQ