
opencv-python 實作簡單的人臉檢測,使用的是 haarcascade_frontalface_alt_tree.xml這個檔案
如果在運行代碼程序中報類似以下錯誤:
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-z4706ql7\opencv\modules\highgui\src\window.cpp:1274: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
這個估計是版本沒下載好,刪了重來
pip uninstall opencv-python
然后下載命令
pip3 install opencv-contrib-python
如果需要安裝anaconda的python環境,可以參考我之前寫的安裝教程:傳送門
當然opencv報錯還可能是因為路徑中有中文或空格,或是代碼的版本不一樣,比如
contours,heriachy = cv.findContours(binary,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
回傳的是兩個引數,老版本回傳了3個引數,當使用老版本3個引數就會報以下錯誤:
ValueError: not enough values to unpack (expected 3, got 2)
關于opencv的一些簡單操作可以看我上一章節的博客;
opencv-python基礎用法詳細代碼-圖片加載-ROI-邊緣濾波-二值化-輪廓提取-膨脹腐蝕等
廢話不多說,直接上本章節代碼
import cv2 as cv
import numpy as np
src = cv.imread('11.jpg') # 匯入圖片
cv.imshow('11.jpg',src) #顯示原圖
def face_detect_demo(image): #自定義人臉檢測函式
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) #灰度化
face_detector = cv.CascadeClassifier('haarcascade_frontalface_alt_tree.xml')
#呼叫級聯檢測器加載人臉檢測資料
faces = face_detector.detectMultiScale(gray, 1.02,5)
#呼叫多尺度人臉檢測,引數1輸入灰度圖,引數2尺度變化每次向上或向下移動多少倍,引數3檢測程度
for x,y,w,h in faces:
cv.rectangle(image, (x,y), (x+w, y+h), (0, 0, 255), 2)
cv.imshow('result', image)
face_detect_demo(src)
cv.waitKey(0)
記得點贊加關注,更新不斷!!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291136.html
標籤:其他
上一篇:爬蟲學習筆記(第四章)驗證碼識別
