#はじめに
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のように文字の抜き取りなんかもしてみたいですね。
以上
#参考にした記事など
- OpenCV 3(core + contrib)をWindows & Python 3の環境にインストール&OpenCV 2とOpenCV 3の違い&簡単な動作チェック - Qiita
- Python版OpenCV入門 サンプル集 | アルゴリズム雑記
- Pythonの数値計算ライブラリ NumPy入門 « Rest Term
#これまでの記事
一覧 | 次回 | |
---|---|---|
一覧 | 2 - マークを読取る |