6 案例 人臉案例

2022-09-20 09:48:09 字數 3061 閱讀 7288

1 得到影象的特徵後,訓練乙個決策樹構建的adaboost級聯決策器來識別是否為人臉

2 opencv中自帶已訓練好的檢測器,包括面部,眼睛,貓臉等,都儲存在xml檔案中,我們可以通過以下程式找到他們:

主程式如下:

import

cv2 as cv

import

matplotlib.pyplot as plt

#1.以灰度圖的形式讀取

#2.例項化opencv人臉和眼睛識別的分類器

face_cas = cv.cascadeclassifier( "

haarcascade_frontalface_default.xml")

face_cas.load(

'haarcascade_frontalface_default.xml')

eyes_cas = cv.cascadeclassifier("

haarcascade_eye.xml")

eyes_cas.load(

"haarcascade_eye.xml")

#3.呼叫識別人臉

facerects = face_cas.detectmultiscale( gray, scalefactor=1.2, minneighbors=3, minsize=(32, 32))

for facerect in

facerects:

x, y, w, h =facerect

#框出人臉

cv.rectangle(img, (x, y), (x + h, y + w),(0,255,0), 3)

#4.在識別出的人臉中進行眼睛的檢測

roi_color = img[y:y+h, x:x+w]

roi_gray = gray[y:y+h, x:x+w]

eyes =eyes_cas.detectmultiscale(roi_gray)

for (ex,ey,ew,eh) in

eyes:

cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

#5. 檢測結果的繪製

plt.figure(figsize=(8,6),dpi=100)

plt.imshow(img[:,:,::-1]),plt.title('

檢測結果')

#2.在每一幀資料中進行人臉識別

while

(cap.isopened()):

ret, frame =cap.read()

if ret==true:

gray =cv.cvtcolor(frame, cv.color_bgr2gray)

#3.例項化opencv人臉識別的分類器

face_cas = cv.cascadeclassifier( "

haarcascade_frontalface_default.xml")

face_cas.load(

'haarcascade_frontalface_default.xml')

#4.呼叫識別人臉

facerects = face_cas.detectmultiscale(gray, scalefactor=1.2, minneighbors=3, minsize=(32, 32))

for facerect in

facerects:

x, y, w, h =facerect

#框出人臉

cv.rectangle(frame, (x, y), (x + h, y + w),(0,255,0), 3)

cv.imshow(

"frame

",frame)

if cv.waitkey(1) & 0xff == ord('q'

):

break

#5. 釋放資源

cap.release()

cv.destroyallwindows()

view code

總結

opencv中人臉識別的流程是:

讀取,並轉換成灰度圖

例項化人臉和眼睛檢測的分類器物件

#

例項化級聯分類器

classifier =cv.cascadeclassifier( "

haarcascade_frontalface_default.xml")

#載入分類器

classifier.load('

haarcascade_frontalface_default.xml

')

3 進行人臉和眼睛的檢測

rect = classifier.detectmultiscale(gray, scalefactor, minneighbors, minsize,maxsize)
4 將檢測結果繪製出來就可以了

Robot Framework(6) 案例分層

案例層 測試流程 資料 流程層 元素操作 元素層 測試庫封裝 案例層 測試流程 資料 流程層 頁面層操作 頁面層 元素操作 元素層 測試庫封裝 1.新建資源檔案,引入selenium2library測試庫,新增關鍵字 元素層 開啟瀏覽器 輸入使用者名稱 將之前指令碼中的每一行都建立關鍵字 2.再建立...

10案例分析

銀行 信用風險,即客戶違約風險,是銀行風險管控的主要內容。不同行業,不同企業,財務指標的風險程度不同。假資料,假資訊,假報表的現象,財務資訊的質量問題有三個方面是非常重要的 1.建立識別假報表的管理體系 2.研究建立財務資訊的勾稽關係,即通過相互之間的購機關係的檢驗來判別資料的質量 3.建立資料的錄...

90 (案例)Lambda案例演示一

從匿名內部類到最簡化的lambda表示式逐漸演示 public inte ce demo02cookpublic class demo02 lambda方式 引數列表 一些重寫方法的 makecook lambda方式 繼續簡化 3 一些 如果 中的 只有一行,無論是否有返回值,都可以省略 retu...