1. 程式人生 > >python OpenCV識別人臉

python OpenCV識別人臉

直接附上程式碼吧。網上有的資料夾開啟是錯的,參照這個格式吧。


import cv2

# 待檢測的圖片路徑
imagepath="F:/MyCode/Image/baby.jpg"

image = cv2.imread(imagepath)
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)


'''
# 獲取人臉識別訓練資料

對於人臉特徵的一些描述,opencv在讀取完資料後很據訓練中的樣品資料,
就可以感知讀取到的圖片上的特徵,進而對圖片進行人臉識別。
xml資料下載,
參考:https://github.com/opencv/opencv/tree/master/data/haarcascades
'''
face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')

# 探測人臉
# 根據訓練的資料來對新圖片進行識別的過程。
faces = face_cascade.detectMultiScale(
  gray,
  scaleFactor = 1.15,
  minNeighbors = 5,
  minSize = (5,5),
  #flags = cv2.HAAR_SCALE_IMAGE
)

# 我們可以隨意的指定裡面引數的值,來達到不同精度下的識別。返回值就是opencv對圖片的探測結果的體現。

# 處理人臉探測的結果
print ("發現{0}個人臉!".format(len(faces)))
for(x,y,w,h) in faces:
    cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)
    # cv2.circle(image,((x+x+w)/2,(y+y+h)/2),w/2,(0,255,0),2)

cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 結果是: