Python基於OpenCV實現人臉檢測並儲存

2022-10-03 12:21:10 字數 2192 閱讀 3197

安裝opencv

如果安裝了pip的話,opencv的在windows的安裝可以直接通過cmd命令pip install opencv-python(只需要主要模組),也可以輸入命令pip install opencv-contrib-python(如果需要main模組和contrib模組)

詳情可以點選此處

匯入opencv

import cv2

所有包都包含haarcascade檔案。這個檔案很重要!!!

cv2.data.haarcascades可以用作資料資料夾的快捷方式。例如:

cv2.cascadeclassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

**#-*- coding: utf-8 -*-

# import opencv的庫

import cv2

import os, math, operator

from pil import image

from functools import reduce

###呼叫電腦攝像頭檢測人臉並截圖

def catchpicfromvideo(window_name, path_name):

cv2.namedwindow(window_name)

#電腦攝像頭

cap = cv2.videocapture(0)

#告訴opencv使用人臉識別分類器

classfier = cv2.cascadeclassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

#檢測人臉後要畫的邊框的顏色程式設計客棧

color = (0, 255, 0)

while cap.isopened():

ok, frame = cap.read() #讀取一幀資料

if not ok:

break

grey = cv2.cvtcolor(frame, cv2.color_bgr2gray) #將當前楨影象轉換成灰度影象

#人臉檢測,1.2和2分別為縮放比例和需要檢測的有效點數

facerects = clwww.cppcns.comassfier.detectmultiscale(grey, scalefactor = 1.2, minneighbors = 3, minsize = (32, 32))

if len(facerects) > 0: #大於0則檢測到人臉

for facerect in facerects: #單獨框出每一張人臉

x, y, w, h = facerect

www.cppcns.com#畫出矩形框

cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)

k = cv2.waitkey(100) #每0.1秒讀一次鍵盤

if k == ord("z") or k == ord("z"): #如果輸入z

#將當前幀儲存為

img_name = path_name

print(程式設計客棧img_name)

image = frame[y - 10: y + h + 10, x - 10: x + w + 10]

cv2.imwrite(img_name, image,[int(cv2.imwrite_png_compression), 9])

break

#顯示影象

cv2.imshow(window_name, frame)

#退出攝像頭介面

c = cv2.waitkey(100)

if c == ord("q") or c == ord("q"):

break

#釋放攝像頭並銷毀所有視窗

cv2.destroyallwindows()

os.system("cls") #清屏

recogname = "recogface.jpg" #預存的人臉檔案

catchpicfromvideo("get face",recogname)

功能:雖然能框住人臉,但是效率還不是很高。

按z或z可以將框住的人臉擷取儲存

本文標題: python基於opencv實現人臉檢測並儲存

本文位址:

基於python的opencv教程

第一次寫部落格,學習是要有輸入與輸出的,所謂教學相長。所以我想試著自己寫乙份教程,算是對自己的學習總結吧,部落格的排版比較直男,請湊合看吧。首先建議的ide是pycharm,opencv的庫直接pip安裝就好,最好大家有一定的python基礎。第一部分是關於圖象讀取和儲存。import cv2imp...

基於python的opencv學習

dst cv2.sobel src,ddept,dx,dy,ksize ddepth 影象的深度,一般設為 1ksize sobel運算元的大小 白到黑是正數,黑到白是負數,所有的負數都會被截斷為0,因此要使用convertscaleabs取絕對值2 拉普拉斯金字塔 1 低通濾波 2 縮小尺寸pyr...

OpenCV基於python改變顏色空間

opencv中有超過150種顏色空間轉換方法。但是我們將研究只有兩個最廣泛使用的,bgr gray和bgr hsv。對於顏色轉換,我們使用cv函式。cvtcolor input image,flag 其中flag決定轉換的型別。對於bgr gray轉換,我們使用標誌cv.color bgr2gray...