安裝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...