資源簡介
python人臉識別(opencv)
代碼片段和文件信息
#coding=utf-8
import?os
import?cv2
import?numpy
def?mkdir(filename):
????‘‘‘
????創建文件夾
????:param?filename:?文件夾目錄
????:return:?空
????‘‘‘
????‘‘‘
????判斷是否存在該文件夾
????‘‘‘
????if?not?os.path.exists(filename):
????????‘‘‘
????????創建文件夾
????????‘‘‘
????????os.mkdir(filename)
def?readFace():
????‘‘‘
????裁剪人臉照片
????:return:
????‘‘‘
????fileFacebase?=?“face“
????‘‘‘
????創建人臉根目錄
????‘‘‘
????mkdir(fileFacebase)
????‘‘‘
????獲取數據目錄子級列表
????‘‘‘
????dirs?=?os.listdir(“d_img“)
????‘‘‘
????循環獲取目錄信息
????‘‘‘
????for?j?dir?in?enumerate(dirs):
????????‘‘‘
????????拼接人臉子集目錄路徑
????????‘‘‘
????????fileInfo?=?fileFacebase?+?“/%s“?%?str(dir)
????????‘‘‘
????????創建人臉自己目錄
????????‘‘‘
????????mkdir(fileInfo)
????????‘‘‘
????????獲取采集數據子集的子集文件
????????‘‘‘
????????ds?=?os.listdir(“d_img/%s“?%?dir)
????????‘‘‘
????????定義變量方便人臉文件命名
????????‘‘‘
????????num?=?0
????????‘‘‘
????????遍歷采集數據子集的子集文件
????????‘‘‘
????????for?d?in?ds:
????????????‘‘‘
????????????拼接文件路徑
????????????‘‘‘
????????????path?=?“d_img/%s/%s“?%?(dir?d)
????????????‘‘‘
????????????讀取文件
????????????‘‘‘
????????????image?=?cv2.imread(path)
????????????try:
????????????????‘‘‘
????????????????更改圖片為灰度圖片加快辨認速度(可選但是要統一)
????????????????‘‘‘
????????????????image?=?cv2.cvtColor(src=image?code=cv2.COLOR_BGR2GRAY)
????????????except?Exception?as?e:
????????????????pass
????????????‘‘‘
????????????加載臉部數據對比
????????????‘‘‘
????????????face_detecotr?=?cv2.CascadeClassifier(“haarcascade_frontalface_alt.xml“)
????????????‘‘‘
????????????對比數據
????????????‘‘‘
????????????face_dete?=?face_detecotr.detectMultiScale(image?minNeighbors=4)
????????????‘‘‘
????????????判斷是否可以采集到人臉數據
????????????‘‘‘
????????????if?isinstance(face_dete?tuple):
????????????????print(“沒有檢查到頭像111“)
????????????????pass
????????????else:
????????????????‘‘‘
????????????????采集到數據名稱加1
????????????????‘‘‘
????????????????num?+=?1
????????????????‘‘‘
????????????????遍歷數據獲取起點xy軸信息人臉寬度w高度h
????????????????‘‘‘
????????????????for?x?y?w?h?in?face_dete:
????????????????????‘‘‘
????????????????????繪畫矩形框便于展示
????????????????????1窗口展示的圖片
????????????????????2起點xy坐標
????????????????????3終點xy坐標
????????????????????4矩形框顏色
????????????????????5邊框寬度
????????????????????‘‘‘
????????????????????cv2.rectangle(img=image?pt1=(x?y)?pt2=(x?+?w?y?+?h)?color=[0?0?255]?thickness=1)
????????????????????‘‘‘
????????????????????裁剪獲取人臉部分數據
????????????????????‘‘‘
????????????????????imgFace?=?image[y:y?+?h?x:x?+?w]
????????????????????‘‘‘
????????????????????設置圖片大小
????????????????????‘‘‘
????????????????????imgFace?=?cv2.resize(imgFace?dsize=(200?200))
????????????????????‘‘‘
????????????????????保存人臉圖片
????????????????????‘‘‘
????????????????????cv2.imwrite(“face/%s/%d_face.jpg“?%?(dir?num)?imgFace)
‘‘‘
獲取人臉數據
‘‘‘
def?getFace():
????‘‘‘
????獲取人臉文件夾下所有子文件夾
????‘‘‘
????dirs?=?os.listdir(“face“)
????‘‘‘
????因為需要讓算法學習所以將數據遍歷之數組中方便算法學習
????‘‘‘
????#?用于存放人臉數據
????X?=?[]
????#?用于存放對應數據的標簽猜想應該可以直接使用文件夾名稱
????Y?=?[]
????‘‘‘
????遍歷人臉圖片文件存儲路徑將輸入存儲到數據集合
????‘‘‘
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????8553??2019-10-24?20:33??python人臉識別\05_opencv人臉識別.py
?????文件??????341406??2019-10-23?09:36??python人臉識別\haarcascade_eye.xm
?????文件??????676709??2019-10-23?09:36??python人臉識別\haarcascade_frontalface_alt.xm
?????文件?????????242??2020-03-13?00:18??python人臉識別\requirements.txt
?????目錄???????????0??2020-03-13?00:20??python人臉識別\
- 上一篇:python 繪圖(方形、線條、圓形)
- 下一篇:窗口動態鑲嵌ui窗體
評論
共有 條評論