python OpenCV識別人臉
阿新 • • 發佈:2018-11-07
直接附上程式碼吧。網上有的資料夾開啟是錯的,參照這個格式吧。
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()
結果是: