從攝像頭中檢測人臉

2021-06-12 20:42:50 字數 1325 閱讀 3527

# -*- coding: cp936 -*-

import cv2.cv as cv

cv.namedwindow("w1", cv.cv_window_autosize)

cv.namedwindow("w2", cv.cv_window_autosize)

cv.movewindow("w1", 10,10);

cv.movewindow("w2", 650,10);

#找到裝置物件

capture = cv.capturefromcam(0)

#檢測人臉函式

def repeat():

#每次從攝像頭獲取一張

frame = cv.queryframe(capture)

image_size = cv.getsize(frame)#獲取的大小

greyscale = cv.createimage(image_size, 8, 1)#建立乙個相同大小的灰度影象

cv.cvtcolor(frame, greyscale, cv.cv_bgr2gray)#將獲取的彩色影象,轉換成灰度影象

storage = cv.creatememstorage(0)#建立乙個記憶體空間,人臉檢測是要利用,具體作用不清楚

cv.equalizehist(greyscale, greyscale)#將灰度影象直方圖均衡化,貌似可以使灰度影象資訊量減少,加快檢測速度

# detect objects

cascade = cv.load('haarcascade_frontalface_alt2.xml')#載入intel公司的訓練庫

#檢測中的人臉,並返回乙個包含了人臉資訊的物件faces

faces = cv.haardetectobjects(greyscale, cascade, storage, 1.2, 2,

cv.cv_haar_do_canny_pruning,

(50, 50))

#獲得人臉所在位置的資料

for (x,y,w,h),n in faces:

cv.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),20)#在相應位置標識乙個矩形 紅色 20寬度

cv.showimage("w2", frame)

cv.showimage("w1", frame)

#迴圈檢測每一幀的知道俺esc鍵退出程式

while true:

repeat()

c = cv.waitkey(10)

if c == 27: break

cv.destroyallwindows()

python opencv3 攝像頭人臉檢測

git 1 coding utf823 import cv2456 defdetect 7 建立人臉檢測的物件 8 face cascade cv2.cascadeclassifier data haarcascade frontalface default.xml 9 建立眼睛檢測的物件 10 e...

OpenCV中的攝像頭人臉檢測

實現 import cv2 import os import numpy as np import matplotlib.pyplot as plt import cv2 as cv from pilimport image import pytesseract as test 攝像頭人臉檢測 de...

SD卡 攝像頭中擴容卡原理及檢測機制

首先對實現擴容卡的原理做下介紹,有以下幾種可能 1 只修改了相關暫存器或其它方面的數值,使得sd卡顯示容量大於實際容量,超出實際容量的位址完全無法寫入資料 2 另一種實現擴容卡的方式是,不僅從數值上改變了容量,還將超出實際容量的位址對映到備份分割槽,使得超出實際容量的部分資料仍舊能夠正常讀寫 sd卡...