[英]error: OpenCV(4.5.5) error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
[英]error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
我正在python中使用opencv嘗試這個示例人臉檢測程序。但是detectMultiscale
函數中似乎有一個錯誤。代碼是:
import cv2
import sys
imagePath = sys.argv[1]
cascPath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread('face.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30)
)
print("Found {0} faces!".format(len(faces)))
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("Faces found", image)
cv2.waitKey(0)
這是代碼。文件名為main.py
。我將所有資源都放在Myproject
文件下。當我嘗試從提示符運行它時,出現此錯誤。
C:\Myproject>python main.py face.jpg
Traceback (most recent call last):
File "main.py", line 21, in <module>
minSize=(30, 30)
cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
感謝閱讀並幫助我解決這個問題。
用這個,
import cv2
faceCascade=cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
img=cv2.imread('image\\my1.jpg')
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(imgGray,1.1,4)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("image",img)
cv2.waitKey(0)
它將幫助您進行正確的人臉檢測
您的 face.jpg 路徑錯誤(檢查它是否在同一文件夾中)。 另外,faceCascade 的路徑是 imagePath+cascPath
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.