6
5

More than 5 years have passed since last update.

bottle.pyとOpenCVでカメラの前の人数を返すサーバ

Last updated at Posted at 2014-11-17

前回はbottle.pyからJavaのプログラムを呼び出してみたが、同じ手法でブラウザでアクセスされたらWebカメラの画像を取得し、OpenCVで顔画像認識してカメラの前にいる人数を返すサーバを書いてみた。

前回はPython3で書いたが、今回はPython2.7なのと、import cv,cv2と書いてるのがダサい。。。

from bottle import route, run, template
import cv,cv2
import time

@route('/cv')
def index():
    cnt = 0
    cap = cv2.VideoCapture(0)
    time.sleep(0.1)
    ret,im = cap.read()
    cv2.imwrite("camera.jpg",im)
    cap.release()
    cascade = cv.Load("haarcascade_frontalface_default.xml")
    cvim = cv.LoadImage("camera.jpg")
    faces = cv.HaarDetectObjects(cvim, cascade, cv.CreateMemStorage())
    for (x,y,w,h),n in faces:
        cnt = cnt + 1
        cv.Rectangle(cvim, (x,y), (x+w,y+h), 255)
    cv.SaveImage('dst.jpg',cvim)
    return template('{{cnt}}', cnt=cnt)
run(host='127.0.0.1', port=8080)
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5