OpenCV3で画像を表示してみる

ゲームをコンピューターにプレイさせるために必要なものは大きく分けてふたつあります。そのひとつが入力です。OCR(Optical Character Recognition)と呼ばれており、スキャナで機械的に文字を読み取る技術のように、画面のキャラクターやスコア表示など、人間が特に意識しなくてもできるようなことをコンピューターで実現するにはなかなか困難です。そこで、OpenCVと呼ばれるライブラリを使用します。

# OpenCVのインストール方法

今後はPythonというプログラミング言語を利用していきますので、まずはPythonとライブラリをインストールするためのPipというツールをインストールします。私は普段Debian系Linuxの環境を使用しているのでapt-getというコマンドを利用します。

sudo apt-get install python3 python3-pip

続いてOpenCVをインストールします。

pip install opencv-python

また今回は出てきませんが、他にも必要になると思われる主要なライブラリをインストールしておきます。

画像処理に用いられるPillow:

pip install Pillow

OpenCVの拡張に用いられるNumpy:

pip install numpy

numpyの拡張に用いられるMatplotlib:

pip install matplotlib

インストールが正しくできたことを確認するため、Pythonのインタプリタを起動してOpenCVを読み込み、エラーがでなければ完了です。Ctrl+Dを入力して終了します。

python3
Python 3.6.9 (default, Jul 17 2020, 12:50:27)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

# 画像を表示してみる

続いてOpenCVで画像を表示してみます。手元のディレクトリに適当な画像をダウンロードしてリネームしておきます。私はlaptop.jpgというファイルを使います。

次に画像と同じフォルダに任意のファイル名で作成します。私はfirst_image.pyとしました。

import cv2

img = cv2.imread("laptop.jpg")

cv2.imshow("first image", img)
cv2.waitKey(0) # キーの入力を受け付ける
cv2.destroyAllWindows() # ウインドウを閉じる

このファイルを実行してみると以下のようなウインドウが表示されます。

laptop.jpgの画像

それぞれcv2.imreadというメソッドで画像を読み込み、cv2.imshowでウインドウに表示できるようです。ウインドウ上で何かキーを押すとウインドウは閉じました。

試しに下2行をコメントアウトしてみると何も実行されませんでした。下2行はcv2.imshowで確認する際には必要になるコードのようです。

続いてcv2.imreadの行をimg = cv2.imread("laptop.jpg", cv2.IMREAD_GRAYSCALE)に書き換えて再び実行してみます。

グレーのlaptop.jpg

画像がグレー調で表示されました。

ブログの初回投稿も兼ねてとても単純なサンプルで説明しましたが、OpenCVを使いこなすのはなかなか大変だと思われるので、このように最初のうちはYouTubeなどで得た情報をまとめていこうと思っています。

# 参考にしたページ

https://www.youtube.com/watch?v=DBd9UYgaodo

https://www.youtube.com/watch?v=g4rLJKrpVe4