调用OpenCV的detectMultiScale()函数时出现Bad Argument错误求助
解决OpenCV detectMultiScale()的Bad Argument错误
你的问题核心是参数拼写错误,报错信息已明确提示:'minNeighbours' is an invalid keyword argument,原因是OpenCV的detectMultiScale()参数采用美式英语拼写,正确参数名是minNeighbors(去掉中间的字母u),而非英式拼写的minNeighbours。
修正后的代码
import cv2 as cv img=cv.imread('photo/goku3.jpg') cv.imshow('image', img) gray=cv.cvtColor(img, cv.COLOR_BGR2GRAY) cv.imshow('gray', gray) haar_cascade=cv.CascadeClassifier('faces.xml') # 修正参数拼写:minNeighbours → minNeighbors faces_rect=haar_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3) print(f"Number of faces found = {len(faces_rect)}") for (x,y,w,h) in faces_rect: cv.rectangle(img, (x,y), (x+w,y+h), (0,255,0), thickness=2) cv.imshow('detected face', img) cv.waitKey(0)
补充说明
- 该错误与
detectMultiScale()函数可用性无关,无需重装OpenCV - OpenCV的Python接口参数命名普遍遵循美式英语规则,遇到参数错误时优先检查拼写是否符合官方规范
内容的提问来源于stack exchange,提问作者Parth Parlikar
相关产品推荐
相关产品推荐

