Edited at

(2017年12月) PythonとOpenCVをこれからやってみる - 1 - はじめの一歩

More than 1 year has passed since last update.


はじめに

Python(パイソン)を中々使う機会が無く、OpenCV(オープンシーブイ)も気にはなりつつ使う機会が無く。

そんな折、ちょっとやってみようと思ったので、今からやるにあたっての導入やはじめの一歩など。

環境はWindows7 64bitでやります。


Pythonの導入

以前にAnaconda(アナコンダ)でPython環境をインストールしていたようです。

コマンドプロンプトにて試したら次のようになりました。


コマンドプロンプト

> python -V

Python 3.6.0 :: Anaconda 4.3.0 (64-bit)

なので、Pythonのインストールからと言う方はAnacondaのサイトからダウンロード&インストールを行なってください。

https://www.anaconda.com/download/


pip(ピップ)について

次のようにして確認して入っていないようなら入れておきます。


コマンドプロンプト

> pip -V

pip 9.0.1 from C:\ProgramData\Anaconda3\lib\site-packages (python 3.6)

> python -m pip -V
pip 9.0.1 from C:\ProgramData\Anaconda3\lib\site-packages (python 3.6)



OpenCVのインストール

次の場所から目的に合うファイルをダウンロードします。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

今回は次のファイルをダウンロードした。実際のバージョン番号などはその時の最新でいいでしょう。

opencv_python‑3.3.1‑cp36‑cp36m‑win_amd64.whl


コマンドプロンプト

> pip install opencv_python‑3.3.1‑cp36‑cp36m‑win_amd64.whl


以下のようにして確認。


コマンドプロンプト

> python

Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1
900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.3.1'
>>> exit()


その他のモジュールの追加

NumPy(ナムパイ,ナンパイ)というのも必要となるそうなので入れておきます。


コマンドプロンプト

> conda install numpy



動くか試してみる

画像ファイルを読込み、指定の範囲の切抜きをして画面表示してみます。

import cv2

filename = "hoge.bmp"

img = cv2.imread(filename, cv2.IMREAD_COLOR)
img2 = img[100:200, 100:200]

cv2.imshow('window title', img2)
cv2.waitKey(0)

cv2.imreadで指定したファイルを、指定した形式で読み取り、NumPyの配列で返してくれるようです。

img は3次元配列となり、1次元目がY軸、2次元目がX軸、3次元目がその1ピクセルのカラー情報であるBGRとなっているようです。(RGBの順ではない)

ファイルを読込む際に、cv2.IMREAD_COLOR の所を cv2.IMREAD_GRAYSCALEとすれば、グレースケールのため、2次元配列が返ってくるようです。

その後、画像の切り抜き、というより配列の範囲指定なのでしょうが、開始位置:終了位置のように指定すれば、その配列の範囲を抜き取れるようですね。簡単ですね。

最後は、cv2.imshowでウィンドウのタイトルの指定と、NumPyの配列を渡せばウィンドウ表示してくれるようです。

cv2.waitkey(0)は、その状態で待機すると言う事でしょう。

まだ、よくわかってない状態ですが、いざやってみると本当に簡単で驚きます。

今まで、趣味で動画編集などをするにあたって画像加工をGIMPのスクリプトでやっていましたが、少し本腰入れてこっちで作る方がはるかに簡単で色々と出来そうですね。

折角なら、OCRのように文字の抜き取りなんかもしてみたいですね。

以上


参考にした記事など


これまでの記事

一覧
次回

一覧
2 - マークを読取る