1. 程式人生 > 其它 >Python | opencv 人臉識別

Python | opencv 人臉識別

整合開發環境(IDE:Integrated Development Environment): PyCharm

PyCharm 是由 JetBrains 打造的一款 Python IDE,支援 macOS、 Windows、 Linux 系統。

PyCharm 功能 : 除錯、語法高亮、Project管理、程式碼跳轉、智慧提示、自動完成、單元測試、版本控制……

PyCharm 下載地址 : https://www.jetbrains.com/pycharm/download/

PyCharm 安裝地址:http://www.runoob.com/w3cnote/pycharm-windows-install.html

Professional(專業版,收費):完整的功能,可試用 30 天。

Community(社群版,免費):專業版。 我用的這個;

試了一個人臉識別的Demo1  先看結果 

import cv2 as cv
import matplotlib.pyplot as plt
# 1.以灰度圖的形式讀取圖片
img = cv.imread("12.png")
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 2.例項化OpenCV人臉和眼睛識別的分類器/haarcascade_frontalface_default haarcascade_eye
face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
face_cas.load('haarcascade_frontalface_default.xml')
eyes_cas = cv.CascadeClassifier("haarcascade_eye.xml")
eyes_cas.load("haarcascade_eye.xml")
# 3.呼叫識別人臉
faceRects = face_cas.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=1, minSize=(60, 60))
for faceRect in faceRects:
x, y, w, h = faceRect
# 框出人臉
cv.rectangle(img, (x, y), (x + h, y + w),(0,255,0), 3)
# 4.在識別出的人臉中進行眼睛的檢測
roi_color = img[y:y+h, x:x+w]
roi_gray = gray[y:y+h, x:x+w]
eyes = eyes_cas.detectMultiScale(roi_gray,minNeighbors=10)
for (ex,ey,ew,eh) in eyes:
cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
# 5. 檢測結果的繪製
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 以上兩行解決plt.title中文顯示問題 不至於亂碼
plt.figure(figsize=(10,12),dpi=100)
plt.imshow(img[:,:,::-1]),plt.title('人臉和眼睛 檢測結果')
plt.xticks([]), plt.yticks([])
plt.show()