2017年5月14日日曜日

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

Arch Linux ARMにOpenCVとやらを入れてみた。
インストール自体は至極簡単。pacman(yaourt)任せでOK。
sudo pacman -S opencv
Pythonで使いたいので、"numpy"もインストールする。
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"
を使用する。
#!/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 件のコメント :

コメントを投稿