
安裝OpenCV
基本要求:
- Python2.7
- Virtualenv
$ brew install opencv
創(chuàng)建項(xiàng)目目錄
$ mkdir learn_cv & cd $_
$ virtualenv venv
將OpenCV的鏈接庫(kù)添加到python的site-packages內(nèi)
$ cd /venv/bin/lib/site-packages
$ ln -s /usr/local/opt/opencv/lib/python2.7/site-packages/cv2.so cv2.so
激活virtualenv然后安裝opencv-python
(venv) $ pip install opencv-python
從靜態(tài)圖片識(shí)別人臉
具體流程如下:
- 調(diào)用
imread讀入目標(biāo)圖片
img = cv2.imread("abba.png")
- 使用
cvtColor方法使圖片灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- 讀入訓(xùn)練模型
face_cascade = cv2.CascadeClassifier(r'./data/haarcascades/haarcascade_frontalface_default.xml')
調(diào)用 detectMultiScale方法識(shí)別圖中的人臉
faces = face_cascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
將圖中的人臉用方框圈出
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + w), (0, 255, 0), 2)
將重畫(huà)過(guò)的圖片顯示到窗口中:
cv2.imshow("preview", img)
cv2.waitKey(0)
如果不調(diào)用waitKey(0)窗口會(huì)馬上關(guān)閉,那樣就看不到輸出的效果了。
以下為本示例的全部代碼
from __future__ import print_function
import cv2
img = cv2.imread("abba.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier(r'./data/haarcascades/haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
print("{0} faces detected!".format(len(faces)))
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + w), (0, 255, 0), 2)
cv2.imshow("preview", img)
cv2.waitKey(0)