-
大小: 1.34MB文件類型: .rar金幣: 2下載: 0 次發布日期: 2023-11-09
- 語言: Python
- 標簽: python??人臉識別??haarcascades??
資源簡介
python人臉識別并截取人臉保存到本地,自帶haarcascades庫

代碼片段和文件信息
#?import?cv2
#?#?import?dlib
#?cap?=?cv2.VideoCapture(0)
#?face_cascade?=?cv2.CascadeClassifier(r‘haarcascade_frontalface_default.xml‘)?#?加載人臉特征庫
#?face_cascade.load(‘E:\\anaconda3\\Library\\etc\\haarcascades\\haarcascade_frontalface_default.xml‘)
#?while(True):
#?????ret?frame?=?cap.read()?#?讀取一幀的圖像
#?????gray?=?cv2.cvtColor(frame?cv2.COLOR_BGR2GRAY)?#?轉灰
#
#?????faces?=?face_cascade.detectMultiScale(gray?scaleFactor?=?1.15?minNeighbors?=?5?minSize?=?(5?5))?#?檢測人臉
#?????for(x?y?w?h)?in?faces:
#?????????cv2.rectangle(gray?(x?y)?(x?+?w?y?+?h)?(0?255?0)?2)?#?用矩形圈出人臉
#
#?????cv2.imshow(‘Face?Recognition‘?gray)
#?????if?cv2.waitKey(1)?&?0xFF?==?ord(‘q‘):
#?????????break
#?cap.release()?#?釋放攝像頭
#?cv2.destroyAllWindows()
import?cv2
import?sys
from?PIL?import?Image
def?CatchPICFromVideo(window_name?camera_idx?catch_pic_num?path_name):
????cv2.namedWindow(window_name)
????#?視頻來源,可以來自一段已存好的視頻,也可以直接來自USB攝像頭
????cap?=?cv2.VideoCapture(camera_idx)
????#?告訴OpenCV使用人臉識別分類器
????classfier?=?cv2.CascadeClassifier(“e:\\anaconda3\\Library\\etc\\haarcascades\\haarcascade_frontalface_default.xml“)
????#?識別出人臉后要畫的邊框的顏色,RGB格式
????color?=?(0?255?0)
????num?=?0
????while?cap.isOpened():
????????ok?frame?=?cap.read()??#?讀取一幀數據
????????if?not?ok:
????????????break
????????grey?=?cv2.cvtColor(frame?cv2.COLOR_BGR2GRAY)??#?將當前楨圖像轉換成灰度圖像
????????#?人臉檢測,1.2和2分別為圖片縮放比例和需要檢測的有效點數
????????faceRects?=?classfier.detectMultiScale(grey?scaleFactor=1.2?minNeighbors=3?minSize=(32?32))
????????if?len(faceRects)?>?0:??#?大于0則檢測到人臉
????????????for?faceRect?in?faceRects:??#?單獨框出每一張人臉
????????????????x?y?w?h?=?faceRect
????????????????#?將當前幀保存為圖片
????????????????img_name?=?‘%s/%d.jpg‘?%?(path_name?num)
????????????????image?=?frame[y?-?10:?y?+?h?+?10?x?-?10:?x?+?w?+?10]
????????????????cv2.imwrite(img_name?image)
????????????????num?+=?1
????????????????if?num?>?(catch_pic_num):??#?如果超過指定最大保存數量退出循環
????????????????????break
????????????????#?畫出矩形框
????????????????cv2.rectangle(frame?(x?-?10?y?-?10)?(x?+?w?+?10?y?+?h?+?10)?color?2)
????????????????#?顯示當前捕捉到了多少人臉圖片了,這樣站在那里被拍攝時心里有個數,不用兩眼一抹黑傻等著
????????????????font?=?cv2.FONT_HERSHEY_SIMPLEX
????????????????cv2.putText(frame?‘num:%d‘?%?(num)?(x?+?30?y?+?30)?font?1?(255?0?255)?4)
????????????????#?超過指定最大保存數量結束程序
????????if?num?>?(catch_pic_num):?break
????????#?顯示圖像
????????cv2.imshow(window_name?frame)
????????c?=?cv2.waitKey(10)
????????if?c?&?0xFF?==?ord(‘q‘):
????????????break
????????????#?釋放攝像頭并銷毀所有窗口
????cap.release()
????cv2.destroyAllWindows()
if?__name__?==?‘__main__‘:
????if?len(sys.argv)?!=?1:
????????print(“Usage:%s?camera_id?face_num_max?path_name\r\n“?%?(sys.argv[0]))
????else:
????????CatchPICFromVideo(“jiequface“?0?200?‘D:\\picture\\lbo‘)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3368??2018-09-19?22:00??face.py
?????文件?????341406??2017-12-08?07:10??haarcascades\haarcascade_eye.xm
?????文件?????601661??2017-12-08?07:10??haarcascades\haarcascade_eye_tree_eyeglasses.xm
?????文件?????411388??2017-12-08?07:10??haarcascades\haarcascade_frontalcatface.xm
?????文件?????382918??2017-12-08?07:10??haarcascades\haarcascade_frontalcatface_extended.xm
?????文件?????676709??2017-12-08?07:10??haarcascades\haarcascade_frontalface_alt.xm
?????文件?????540616??2017-12-08?07:10??haarcascades\haarcascade_frontalface_alt2.xm
?????文件????2689040??2017-12-08?07:10??haarcascades\haarcascade_frontalface_alt_tree.xm
?????文件?????930127??2017-12-08?07:10??haarcascades\haarcascade_frontalface_default.xm
?????文件?????476825??2017-12-08?07:10??haarcascades\haarcascade_fullbody.xm
?????文件?????195369??2017-12-08?07:10??haarcascades\haarcascade_lefteye_2splits.xm
?????文件??????47775??2017-12-08?07:10??haarcascades\haarcascade_licence_plate_rus_16stages.xm
?????文件?????395320??2017-12-08?07:10??haarcascades\haarcascade_lowerbody.xm
?????文件?????828514??2017-12-08?07:10??haarcascades\haarcascade_profileface.xm
?????文件?????196170??2017-12-08?07:10??haarcascades\haarcascade_righteye_2splits.xm
?????文件??????75482??2017-12-08?07:10??haarcascades\haarcascade_russian_plate_number.xm
?????文件?????188506??2017-12-08?07:10??haarcascades\haarcascade_smile.xm
?????文件?????785817??2017-12-08?07:10??haarcascades\haarcascade_upperbody.xm
?????目錄??????????0??2018-10-20?20:34??haarcascades
-----------?---------??----------?-----??----
??????????????9767011????????????????????19
評論
共有 條評論