【2018.12.24】python3.7+OpenCV 人臉識別(圖片+攝像頭)
阿新 • • 發佈:2018-12-24
一、識別影象中的人臉個數。註釋寫的很好(\(^o^)/恩)
#!/practice/Study_Test python # -*- coding: utf-8 -*- # @Time : 2018/12/23 21:19 # @Author : yb.w # @File : imageface.py # @define : 檢測圖片中的人臉,用矩形框標出 # OpenCv : # 使用OpenCV自帶庫引數資料 # 1.匯入庫 import cv2 # 2.載入圖片,載入模型 # 待檢測的圖片路徑 imagepath = r'./face1.jpg' # 獲取訓練好的人臉的引數資料,這裡直接使用預設值 face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_alt.xml') # 讀取圖片 image = cv2.imread(imagepath) # 3.對圖片灰度化處理 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 4.檢測人臉,探測圖片中的人臉 faces = face_cascade.detectMultiScale( gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5), # flags=cv2.cv.CV_HAAR_SCALE_IMAGE ) print("發現{0}個人臉!".format(len(faces))) # 5.標記人臉 for(x,y,w,h) in faces: # 1.原始圖片 2.人臉座標原點 3.標記的高度 4,線的顏色 5,線寬 cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2) # 6.顯示圖片 cv2.imshow("Find Faces!", image) # 7.暫停視窗 cv2.waitKey(5000) # 8.銷燬視窗 cv2.destroyAllWindows()
結果展示
二、攝像頭 人臉實時檢測
#!/practice/Study_Test python # -*- coding: utf-8 -*- # @Time : 2018/12/23 21:25 # @Author : yb.w # @File : videoface.py # 四、使用攝像頭進行動態捕捉 # 1.匯入庫 import cv2 # 2.載入人臉模型 faceModel = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml') # 3.開啟攝像頭 capture = cv2.VideoCapture(0) # 4.獲取攝像頭的實時畫面 while True: #4.1讀取每一幀的畫面 ret,image = capture.read() #4.2灰度處理 gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY) #4.3檢查人臉 # faces = faceModel.detectMultiScale(gray,1.1,3,0) faces = faceModel.detectMultiScale( gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5), # flags=cv2.cv.CV_HAAR_SCALE_IMAGE ) print("發現{0}個人臉!".format(len(faces))) #4.4標記人臉 for(x,y,w,h) in faces: # 1.原始圖片 2.人臉座標原點 3.標記的高度 4,線的顏色 5,線寬 cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2) #4.5顯示圖片 cv2.imshow('人臉識別攝像頭',image) #4.6暫停視窗 if cv2.waitKey(5) & 0xFF == ord('q'): break # 5.釋放資源 capture.release() # 6.銷燬視窗 cv2.destroyAllWindows()
結果展示
歡迎加麻花藤裙交流:728109091