我在对象检测方面遵循了这个特定的tutorial。 他在他的代码中使用了这个版本的detectMultiSacle函数,这允许他调整检测阈值或者像rejectLevels和levelWeights那样:
的Python:
cv2.CascadeClassifier.detectMultiScale(image,
rejectLevels, levelWeights[,
scaleFactor[, minNeighbors[, flags[,
minSize[, maxSize[,
outputRejectLevels]]]]]]) → objects
这是我的代码:
detectMultiScale(image=gray,
rejectLevels=rejectlevels,
levelWeights=levelweights)
但它给出了以下错误,这让我感到困惑:
TypeError: 'rejectLevels' is an invalid keyword argument for this function
我原本试图使用detectMultiScale(image, rejectLevels, levelWeights, scaleFactor)
但是它给了我错误,说第四个参数不能浮动,这使我怀疑我没有使用我认为我使用的函数
我使用pip
安装opencv-python,版本3.3.0.9。除了webpage之外,我找不到任何python文档。
感谢一些帮助。我在哪里可以找到最新python api的文档,或者对这个特定函数的一些经验。
答案 0 :(得分:0)
很难找到OpenCV 3.3的python文档,但OpenCV3.0 docs表明detectMultiScale使用ouputRejectLevels
。尝试使用该论点。
以下是他们的细分:
Python:cv2.CascadeClassifier.detectMultiScale(image [,scaleFactor [,minNeighbors [,flags [,minSize [,maxSize]]]]])→对象
Python:cv2.CascadeClassifier.detectMultiScale2(image [,scaleFactor [,minNeighbors [,flags [,minSize [,maxSize]]]]])→objects,numDetections
Python:cv2.CascadeClassifier.detectMultiScale3(image [,scaleFactor [,minNeighbors [,flags [,minSize [,maxSize [,outputRejectLevels]]]]]])→objects,rejectLevels,levelWeights
答案 1 :(得分:0)
虽然最近版本的OpenCV的在线文档没有列出有关Python绑定的信息,但是很容易找到它 - 它嵌入在Python模块中。至少你会得到相关方法的签名。
使用内置help()
功能访问它。
例如(不是这是OpenCV 3.1,所以在本地仔细检查):
>>> import cv2
>>> c = cv2.CascadeClassifier()
>>> help(c.detectMultiScale)
Help on built-in function detectMultiScale:
detectMultiScale(...)
detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects