可以用opencv 的庫函式來實現人臉檢測
#coding=utf-8
import numpy as np
import cv2
import time
import sys, getopt
from video import create_capture
from common import clock, draw_str
def detect(img , cascade):#檢測函式
rects = cascade.detectmultiscale(img, scalefactor=1.3, minneighbors=4, minsize=(30, 30),
flags=cv2.cascade_scale_image)
if len(rects) == 0:
return
rects[:,2:] += rects[:,:2]
return rects
def draw_rects(img, rects, color):#畫框函式
for x1, y1, x2, y2 in rects:
cv2.rectangle(img, (x1, y1), (x2, y2), color, 2)
if __name__ == '__main__':#主函式
args = {}
#讀入分類器
cascade_fn = args.get('--cascade', "haarcascade_frontalface_alt.xml")
# cascade_fn = args.get('--cascade', "haarcascade_righteye_2splits.xml")#yanjing
# cascade_fn = args.get('--cascade', "haarcascade_fullbody.xml")
eyes = args.get('--eyesed-cascade', "haarcascade_eye.xml")
cascade = cv2.cascadeclassifier(cascade_fn)
eyesed = cv2.cascadeclassifier(eyes)
print cascade_fn
cap = cv2.videocapture(0)
while true:
#延時time.sleep(0.10)
ret,img = cap.read()#讀入每一幀影象
gray = cv2.cvtcolor(img, cv2.color_bgr2gray)#灰度化
t = clock()#計時
rects = detect(gray, cascade)#檢測人臉
vis = img.copy()
draw_rects(vis, rects, (0, 255, 0))
# if not eyesed.empty():
# for x1, y1, x2, y2 in rects:
# roi = gray[y1:y2, x1:x2]
# vis_roi = vis[y1:y2 , x1:x2]
# subrects = detect(roi.copy(), eyesed)
# draw_rects(vis_roi, subrects, (255, 0, 0))
subrects = detect(gray, eyesed)
draw_rects(vis, subrects, (255, 0, 0))
dt = clock() - t
# print dt
draw_str(vis, (20, 20), 'time: %.1f ms' % (dt*1000))
cv2.imshow('facedetect', vis)
if cv2.waitkey(5) == 27:
break
cv2.destroyallwindows()
下面是效果圖:
圖刪了。。
一共三個函式:detect函式 、draw_rects函式、main函式
python opencv實現掩膜
import ssl import urllib.request import cv2 import numpy as np 獲得def getpic name,url name 位址 url 名字 自定義 解決ssl驗證 請求 resp urllib.request.urlopen url ima...
python opencv實現抖動演算法
簡單說就是犧牲解析度來提高顏色數量。通過黑點的疏密程度來進行灰度的顯示。例如墨水螢幕只能顯示黑白,那麼我們可以取樣一部分區域矩,例如2x2的乙個矩陣,來顯示5個級別的灰度,用4個畫素當成乙個畫素來看,就會有5個級別的灰度。通過這種方法就可以犧牲掉一半的解析度 其實是1 4 來顯示出5個級別的灰度,當...
python OpenCV實現動態物體追蹤
一 安裝opencv 就踩到了很多坑 從以下部落格中獲得了很多幫助 安就安了一晚上。兩個小時還沒裝好。壯士 第二天關機再開發現就可以了 可能配置環境需要重啟電腦 二 需求分析 然後就來找我 感覺挺有意思的 以前也聽說過opencv 沒用過 遂接受 0.0反正寫出來了他也不會發現我是乙個弱雞hhh 最...