# 安裝OpenCV工具庫
# OpenCV是功能強大的第三方開源庫,主要用於計算機視覺領域
# 我們希望借助Python語言來實現一個面部識別的小功能模塊
# 下面是詳細的解讀,無需計算機視覺方面的理論功底,知道操作步驟即可
''' 安裝OpenCV工具庫 在Windows cmd(Windows 命令行)中輸入下面命令: pip install opencv_python -i https://pypi.tuna.tsinghua.edu.cn/simple 我一般喜歡在https://pypi.tuna.tsinghua.edu.cn/simple(清華開源軟件鏡像網站)
下載並安裝第三方庫,這樣會大大提高安裝的成功率,我比較推薦使用這種方式。 '''
# 導入cv2工具庫,是的,opencv的導入名稱是cv2而不是opencv
import cv2
# 讀取一張本地圖片:調用cv2中的imread函數,參數為圖片文件的路徑,返回一個Image對象
img = cv2.imread('D:/Lena.jpg')
# 准備人臉識別引擎:這個部分我們暫且不聊,你就當作是調用一個實現人臉識別的應用程序了
# 注意調用的格式,首先調用CascadeClassifier函數,顧名思義這個函數跟分類有關
# 人臉識別就是機器學習領域中的分類任務
# 參數由兩部分構成,中間用加號連接起來
# 第一部分是cv2.data.haarcascades,第二部分是一個xml文件名
# xml文件名上自第一個連字符開始也有提示信息frontalface_default,表示人臉識別功能引擎
# 后面還會講到人眼識別和微笑識別,只需改變上述的提示信息即可調用識別引擎
face_engine = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# 利用識別引擎來檢測圖片:調用識別引擎里的檢測方法detectMultiScale
# 參數中主要有三個部分:檢測的對象(即本地圖片)、檢測的精度(建議1.3到2.5之間的浮點數)以及檢測的范圍(值越小范圍越小)
# 以上為函數里參數設置的基本描述,望大家自行調試
# 返回一個可迭代對象
faces = face_engine.detectMultiScale(img, 1.5, 4)
# 畫出人臉的矩形區域
# 簡單介紹一下可迭代對象的內容
# faces是引擎檢測出來的每個面部區域的有效信息
# 包括坐標和寬度高度
# x,y為左上角的坐標,w,h為面部區域的寬度和高度
# 調用rectangle函數在圖片上繪制矩形
# rectangle里的參數:指定的圖片、左上角坐標、右下角坐標、BGR顏色設置矩形的邊框顏色、邊框寬度的設置
for (x, y, w, h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# 窗口顯示圖片:窗口名稱、圖片
cv2.imshow('Face_recognition',img)
# 安全退出窗口
cv2.waitKey(0)
最后得到這樣一張圖,這張照片是計算機視覺領域的入門級圖片Lena圖,相當於編程領域的“Hello World!”.
大家不妨按照我的教程來試試!