2017年5月14日日曜日

Raspberry Pi Arch Linux ARMにOpenCV入れてみた

Arch Linux ARMにOpenCVとやらを入れてみた。
インストール自体は至極簡単。pacman(yaourt)任せでOK。
  1. sudo pacman -S opencv
Pythonで使いたいので、"numpy"もインストールする。
  1. sudo pacman -S python-numpy
"numpy"は、Pythonで数値計算を効率良く(高速に?)行う為のライブラリらしい。
これだけで、OpenCVが使えるようになる。
このようなBGR値を、操作することで画像処理を行っていく(らしい)。

ついでなので、画像での顔検出をやってみる。
下のページを参考にさせてもらいました。有り難うございます。
http://peaceandhilightandpython.hatenablog.com/entry/2016/02/18/194303
(自分の環境で動くように、パスの指定等は変更しています。)
検出用には、OpenCVをインストールすると標準で入っている、
"/usr/share/opencv/haarcascades/haarcascade_frontface_default.xml"
を使用する。
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. import cv2
  5. import numpy as np
  6.  
  7. faceCascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml')
  8.  
  9. img = cv2.imread('./face.jpg')
  10. gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  11. face = faceCascade.detectMultiScale(gray, 1.1, 3)
  12.  
  13. if len(face) > 0:
  14. for rect in face:
  15. cv2.rectangle(img, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), (255, 255,255), thickness=2)
  16. else:
  17. print("no face")
  18.  
  19. cv2.imwrite('detected.jpg', img)

元の画像(お馴染みの)

検出結果

試しに、180度回転して上下逆にした画像で実行してみた。
これは、"no face"となり、検出できなかった。

0 件のコメント :

コメントを投稿