Windows 环境使用 python opencv 面部识别
准备工作(下载) :
Python 2.7
Numpy for Python 2.7
OpenCV 2.4
安装:
1) 首先安装 Python 2.7. 缺省文件夹: C:\Python27\
2) 然后安装 Numpy. 全使用缺省值.
3) 现在安装 OpenCV.exe. 他将问你安装文件夹,填写 C:\. 它将解压全部文件到 C:\opencv\ .
4) 拷贝 C:\opencv\build\python\x86\2.7\ 的所有文件(多数时候只有cv2.pyd)到 C:\Python27\Lib\site-packages\
5) 打开你的 "Python IDLE" -> Python IDLE 输入: import cv2
如果一切OK,它将import cv2模块,否则将显示相应错误信息
一个来自npinto的面部识别demo
cv2_detect.py
import cv2 import cv2.cv as cv def detect(img, cascade_fn='haarcascade_frontalface_alt.xml', scaleFactor=1.1, minNeighbors=4, minSize=(20, 20), flags=cv.CV_HAAR_SCALE_IMAGE): cascade = cv2.CascadeClassifier(cascade_fn) rects = cascade.detectMultiScale(img, scaleFactor=scaleFactor, minNeighbors=minNeighbors, minSize=minSize, flags=flags) if len(rects) == 0: return [] rects[:, 2:] += rects[:, :2] return rects
demo.py
import time from cv2_detect import detect import cv2 import cv2.cv as cv def draw_rects(img, rects, color): for x1, y1, x2, y2 in rects: cv2.rectangle(img, (x1, y1), (x2, y2), color, 2) def demo(in_fn, out_fn): print ">>> Loading image..." img_color = cv2.imread(in_fn) img_gray = cv2.cvtColor(img_color, cv.CV_RGB2GRAY) img_gray = cv2.equalizeHist(img_gray) print in_fn, img_gray.shape print ">>> Detecting faces..." start = time.time() rects = detect(img_gray) end = time.time() print 'time:', end - start img_out = img_color.copy() draw_rects(img_out, rects, (0, 255, 0)) cv2.imwrite(out_fn, img_out) def main(): demo('pic.jpg', 'pic.detect.jpg') if __name__ == '__main__': main()