インストール自体は至極簡単。pacman(yaourt)任せでOK。
Pythonで使いたいので、"numpy"もインストールする。
- sudo pacman -S opencv
"numpy"は、Pythonで数値計算を効率良く(高速に?)行う為のライブラリらしい。
- sudo pacman -S python-numpy
これだけで、OpenCVが使えるようになる。
このようなBGR値を、操作することで画像処理を行っていく(らしい)。
ついでなので、画像での顔検出をやってみる。
下のページを参考にさせてもらいました。有り難うございます。
http://peaceandhilightandpython.hatenablog.com/entry/2016/02/18/194303
(自分の環境で動くように、パスの指定等は変更しています。)
検出用には、OpenCVをインストールすると標準で入っている、
"/usr/share/opencv/haarcascades/haarcascade_frontface_default.xml"
を使用する。
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- import cv2
- import numpy as np
- faceCascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml')
- img = cv2.imread('./face.jpg')
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- face = faceCascade.detectMultiScale(gray, 1.1, 3)
- if len(face) > 0:
- for rect in face:
- cv2.rectangle(img, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), (255, 255,255), thickness=2)
- else:
- print("no face")
- cv2.imwrite('detected.jpg', img)
元の画像(お馴染みの)
検出結果
試しに、180度回転して上下逆にした画像で実行してみた。
これは、"no face"となり、検出できなかった。
0 件のコメント :
コメントを投稿