1. 程式人生 > >OpenCV-Python 人臉識別

OpenCV-Python 人臉識別

---恢復內容開始---

一、簡單的識別

  1、使用opencv進行貓的識別

 1 import cv2
 2 import numpy as np
 3 # 讀取圖片
 4 cat= cv2.imread('./cat.jpg')
 5 # 將彩色圖片變成黑白圖片,識別速度更快,提高效率
 6 gray = cv2.cvtColor(cat,code=cv2.COLOR_BGR2GRAY)
 7 # 針對具體的HAAR特徵的級聯分類器
 8 cat_head_detector = cv2.CascadeClassifier('./haarcascade_frontalcatface.xml
') 9 # 使用cat_dead_detector中的方法進行人臉檢測 10 cat_zone = cat_head_detector.detectMultiScale(gray,scaleFactor=1.1,minNeighbors = 5,minSize=(40,40),maxSize=(80,80)) 11 for x,y,w,h in cat_zone: 12 cv2.rectangle=(cat, pt1=(x,y), pt2=(x+w,y+h),color=[0,0,255],thickness=2) 13 14 cv2.imshow('cat', cat)    # 展示圖片
15 cv2.waitKey(0)        # 在鍵盤上按某個鍵退出圖片 16 cv2.destroyALLWindows()    # 因為opencv底層是c++,得釋放記憶體
第八行:cv2.CascadeClassifier 是一個基於Haar特徵的物件檢測級聯分類器。在訓練分類器後,可以將應用於輸入影象中感興趣
的區域,如果可能是是別的輸出1,否則為0。分類器名稱中的級聯意味著所得分類器由幾個更簡單的分類器(階段組成。
  使用的時候直接將特徵放到分類器中便可。
第十行:
cat_head_detector.detectMultiScale進行人臉檢測。
  第一個引數:  需要識別的黑白化的圖片
  第二個引數:  待檢測物件,縮放比例。預設值為1.1,值必須大於1.0
  第三個引數:  minNeighbors 周圍檢測的數量,作為篩選條件,值越大越苛刻
  第四個引數:  minSize 識別的最小區域
  第五個引數:  maxSize 識別的最大區域
第十二行:cv2.rectangle()繪製識別出來的區域,這裡使用的是矩形
  第一個引數:  需要識別的圖片
  第二個引數:  矩形的左上角座標
  第三個引數:  矩形的右下角座標 (因為兩個頂點能確定一個矩形,所以取兩個頂點就行了)
  第四個引數:  識別出來的框的顏色因為這裡是BGR模式,所以在color中表示為[藍,綠,紅]
  第五個引數:  矩形線條大小