-
OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和Mac
OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++
類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。官網下載sdk
https://opencv.org/ OPENCV -
本文利用python檢測人臉
-
首先安裝opencv的python庫
可以直接用 pip 包管理工具進行安裝,打開cmd直接輸入: pip3 install opencv-python
如果提示需更新pip可以輸入(python -m pip install --upgrade pip)
下載速度過慢的話可以嘗試把下載的鏡像節點換爲國內的,速度扛扛的!
下面是opencv官方提供訓練好的分類器,可以直接使用。
如果需要檢測別的可以自己訓練,需要大量的樣本。
本次使用了 lbpcascade_frontalface.xml這一個分類器檢測人臉
下面是代碼。
import cv2
# 訓練好的人臉分類器
facePath = "lbpcascade_frontalface.xml"
faceCascade = cv2.CascadeClassifier(facePath)
# 引入圖片
img = cv2.imread("timg.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 檢測人臉
faces = faceCascade.detectMultiScale(
gray,
scaleFactor= 1.1,
minNeighbors=8,
minSize=(55, 55),
flags=cv2.CASCADE_SCALE_IMAGE
)
# 畫出人臉紅色框框
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
# 顯示
cv2.imshow('img', img)
c = cv2.waitKey(0)