大四學生的畢設!利用Python+OpenCV來進行人臉識別與跟蹤!真難

大四學生的畢設!利用Python+OpenCV來進行人臉識別與跟蹤!真難

然後從opencv解壓後的路徑中找(D:\My Documents\Downloads)\opencv\build\python\2.7\\x86,()裡面的部分是你自己的安裝路徑,其中x86對應32位的機器,x64代表64位的機器,當然要按照你機器的實際情況選擇了。將這個路徑裡面的cv2.pyd拷貝至python2.7的模塊路徑C:\Python27\Lib\site-packages裡,python2.7默認安裝在C盤跟目錄下。

此時打開python,在cmd下輸入python,或者直接打開“所有程序->active state active python->Python Interactive Shell”都行。

大四學生的畢設!利用Python+OpenCV來進行人臉識別與跟蹤!真難

import cv2import numpy as npcv2.namedWindow("test")cap=cv2.VideoCapture(0)success,frame=cap.read()classifier=cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") #確保此xml文件與該py文件在一個文件夾下,否則將這裡改為絕對路徑,此xml文件可在D:\My Documents\Downloads\opencv\sources\data\haarcascades下找到。while success:  success,frame=cap.read()  size=frame.shape[:2]  image=np.zeros(size,dtype=np.float16)  image=cv2.cvtColor(frame,cv2.cv.CV_BGR2GRAY)  cv2.equalizeHist(image,image)  divisor=8  h,w=size  minSize=(w/divisor,h/divisor)  faceRects=classifier.detectMultiScale(image,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize)  if len(faceRects)>0:    for faceRect in faceRects:      x,y,w,h=faceRect      cv2.circle(frame,(x+w/2,y+h/2),min(w/2,h/2),(255,0,0))      cv2.circle(frame,(x+w/4,y+h/4),min(w/8,h/8),(255,0,0))      cv2.circle(frame,(x+3*w/4,y+h/4),min(w/8,h/8),(255,0,0))      cv2.rectangle(frame,(x+3*w/8,y+3*h/4),(x+5*w/8,y+7*h/8),(255,0,0))  cv2.imshow("test",frame)   key=cv2.waitKey(10)  c=chr(key&255)  if c in ['q','Q',chr(27)]:    breakcv2.destroyWindow("test")

為什麼沒有註釋,你恐怕知道下雨天,dir()和help()更配呦。

這段代碼的功能就是對計算機攝像頭拍到的視頻加以處理,使其顯示並追蹤人臉。下圖是運行效果:

大四學生的畢設!利用Python+OpenCV來進行人臉識別與跟蹤!真難

最後再說一句,這個過程說起來簡單,但很容易出錯,希望大家能自己找到錯誤的原因,並解決錯誤。如果自己解決不了的話,不妨把問題貼在評論裡,大家來共同解決,共同進步。


分享到:


相關文章: