今更なのですが、PythonとかOpenCVとかを触ってみたくなったので環境を構築してみることにしました。自宅でも暇な時に気軽に遊べるようにWindowsに導入してみます。
##WinPythonの導入
どうやらWinPythonなるものを使用すると必要なもの一式をWindowsに簡単にインストールできるようです。
最初はとりあえず最新のWinPython3.5.4をインストールしてみたのですが、いろいろあって3.4.4をインストールしなおしました。ちなみに、WinPythonはレジストリに書き込みを行わないので、アンインストールしたくなったらディレクトリを削除すればOKです。結論から言うと最新版のWinPythonをインストールするのはオススメしません。
##OpenCVの導入
WinPythonに含まれるパッケージはこちら確認することが出来ます。OpenCVも入っているのかと思ったのですが、入っていませんでした、、、
というわけで、OpenCVを導入します。普通にダウンロードしてexeを実行すればよいのですが、もっと簡単な方法があるようです。
こちらから、whlファイルをダウンロードして、WinPython Control Panelからwhlファイルを指定してInstall PackagesをクリックすればOKです、、、OKなはずなのですが、対応しないWinPythonのバージョンですと、インストールが正しく行われません。この際、何のメッセージも表示されないので注意しましょう。Winpython Command Promptから
pip install whlfile
とやった場合には、エラーメッセージが表示されますので、おかしいと思ったらコマンドプロンプトから実行してエラーメッセージをチェックしましょう。
今回は以下の2つのバージョンを使用しました。
- opencv_python‑3.1.0‑cp34‑cp34m‑win_amd64.whl
- WinPython-64bit-3.4.4.6Qt5
##インストールの確認
IPython Qt Consoleを起動して、以下のようにバージョンを確認することが可能です。
import cv2
cv2.__version__
'3.1.0'が返ってきました。
##動作確認
では簡単なサンプルをSpyderで作成して動かしてみましょう。
インストールディレクトリのSpyder.exeを起動します。
以下のコードを貼り付けて動作させてみましょう。カメラが起動したら成功です。
なお、真っ黒な画面が表示される場合には、デフォルトのカメラの設定が異なる可能性があるので、cv2.VideoCapture(1)にして試してみてください。Thinkpad 2台で試しましたが1台は0ではなくて1で正しく表示されました。
import cv2
import time
window = "push ESC key to stop this program"
if(__name__ == '__main__'):
# デフォルトカメラは0
capture = cv2.VideoCapture(0)
# キャプチャ処理
while(True):
key = cv2.waitKey(1)
if(key == 27):
print("close.")
break
# 画像キャプチャ
ret, img = capture.read()
# 取り込み開始になっていなかったらやりなおし
if(ret == False):
print("Capture Failed.")
break
cv2.imshow(window, img)
time.sleep(0.050)
capture.release()
cv2.destroyAllWindows()
#まとめ
今回はWindowsにpythonとOpenCVの環境を構築し、カメラを起動しました。次回は、サンプル提供される顔検出器を用いて、動画中の顔を認識してみたいと思います。