opencv python detectMultiScale api

时间:2017-08-24 16:12:05

标签: python opencv

我在对象检测方面遵循了这个特定的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的文档,或者对这个特定函数的一些经验。

2 个答案:

答案 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