**
配置python環境
**
下載python,
python -m ensurepip 安裝pip
**
導庫
**
pip install opencv-python,
pip install numpy,
pip install matplotlib
**
**
代碼
**
#如果設置0就是調用本地攝像頭
#video=cv2.VideoCapture(0)
#獲取本地mp4視頻
video = cv2.VideoCapture("../1.mp4")
#獲取視頻默認幀數 /s
fps = video.get(propId = cv2.CAP_PROP_FPS)
#獲取每一幀的寬度
fps_w = int(video.get(propId = cv2.CAP_PROP_FRAME_WIDTH))
#獲取每一幀的高度
fps_h = int(video.get(propId=cv2.CAP_PROP_FRAME_HEIGHT))
#算出多少毫秒一幀 ms/fps
fps_millis = 1000//int(fps)
#保存路徑
video_writer = cv2.VideoWriter(r"D:\po.avi",cv2.VideoWriter_fourcc("M","P","4","2"),fps_millis,(fps_w, fps_h))
#獲取人臉識別核心文件
detector = cv2.CascadeClassifier("../haarcascade_frontalface_default.xml")
#判斷視頻是否已經關閉
while video.isOpened():
#讀取一幀,flag如果沒有讀到幀返回False,否則返回True
flag,img = video.read()
if flag == False:
break
else:
#降維黑白圖片,降低數據處理壓力
img2 = cv2.cvtColor(img,code = cv2.COLOR_BGR2GRAY)
#返回人臉信息
arr = detector.detectMultiScale(img2,scaleFactor = 1.3,minNeighbors = 5,minSize = (30, 30))
#遍歷人臉信息
for x,y,w,h in arr:
#人臉區域正方形邊框
#cv2.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=[0,255,0],thickness=2)
#人臉區域圓形邊框
cv2.circle(img,center = (x+w//2, y+h//2), radius=w//2, color=[0, 255, 0],thickness = 2)
#講讀到的幀寫入
video_writer.write(img)
#彈窗顯示
cv2.imshow("ll",img)
#按鍵監聽,如果按q關閉彈窗
if ord("q") == cv2.waitKey(fps_millis):
break;
cv2.destroyAllWindows()
#釋放資源
video.release()
video_writer.release()
效果:
在這裏插入圖片描述