python - OpenCV Python 检测多尺度

标签 python c++ opencv

大家好,你能给我一些关于 OpenCV 的建议吗? 当我想打印出 r 以查看 rejectLevels 时,它只会打印出空数组。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os, sys, logging, time
import numpy as np
import cv2
import cv2.cv as cv


face_cacade = '../home/haarcascade_frontalface_default.xml'

xml = cv2.CascadeClassifier(face_cascade)

array_of_images = [] --> Some images

for image in array_of_images:              

        img   = cv2.imread(image)

        gray  = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        gray  = cv2.equalizeHist(gray)

        **r**  =  []
        x  =  []

        #cv2.CascadeClassifier.detectMultiScale(image, rejectLevels, levelWeights[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) → objects
        faces = xml.detectMultiScale(image = img, rejectLevels = **r**, levelWeights = x ,scaleFactor=1.05, minNeighbors=1, minSize=(30, 30), flags = cv.CV_HAAR_SCALE_IMAGE)


        file_out  = open('/tmp/faces_score.txt','w+',0)

        for (x,y,w,h) in faces: 

        cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),1)

        roi_gray  = gray[y:y+h, x:x+w]

        roi_color = img[y:y+h, x:x+w]

        print **r**, x

你能给我一些关于 Opencv detectMultiScale 的解决方案或经验吗,我查看了 c++ 代码源,它在那里看起来很好,但在 Python 中它不会正常工作。 OpenCV 版本:2.4.8 Python版本:2.7.6

最佳答案

我不确定,如果我看对了,如果看错了,请纠正我,但 rejectlevels 不应该是一个浮点值吗?此外,您没有为 r 分配任何内容,这意味着它将始终是一个空数组并保持这种状态。我最近也使用 opencv python 的 detectmultiscale 做了一些事情,我所做的是:

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

其中 1.3 相当于拒绝级别。

关于python - OpenCV Python 检测多尺度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710389/

相关文章:

c++ - 内存泄漏(OpenCV + QML)

python - 如何将人物传奇带到前面?

python - 为什么 aiohttp 需要 await 才能获取 body?

python - Pandas:整洁的多级数据

c++ - 在类中声明了char数组后,如何修改它?

video - 如何在 OpenCV 中保留 VideoCapture 提供的帧

python - 从 pandas dataframe groupby 中提取带有计数的新列

c++ - OpenGL系统监视器

c++ - 重载虚拟方法与非虚拟方法有何不同?

python - 仅检查 OpenCV 中视频源的特定部分