[Python] return _cv.cvHaarDetectObjects(*args)

Discussão em 'Python' iniciado por Stack, Maio 29, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to detect the face from the webcam using opencv python on ubuntu. I got this online code and tried running this program and I am getting the as NULL array pointer is passed, I guess it is not able to capture the video from webcam but with the same code(only capture camera) I got the camera on and it captured the video. Here is my code:

    import cv
    from opencv import highgui
    HAAR_CASCADE_PATH = "/home/OpenCV-2.3.1/data/haarcascades/haarcascade_frontalface_default.xml"

    CAMERA_INDEX = 0
    def detect_faces(image):
    faces = []
    detected = cv.HaarDetectObjects(image, cascade, storage, 1.2, 2, cv.CV_HAAR_DO_CANNY_PRUNING, (100,100))
    if detected:
    for (x,y,w,h),n in detected:
    faces.append((x,y,w,h))
    return faces

    if __name__ == "__main__":
    cv.NamedWindow("Video", cv.CV_WINDOW_AUTOSIZE)

    capture = cv.CaptureFromCAM(0)
    storage = cv.CreateMemStorage()
    cascade = cv.Load(HAAR_CASCADE_PATH)
    print cascade
    faces = []

    i = 0
    c = -1
    while (c == -1):
    image = cv.QueryFrame(capture)


    # Only run the Detection algorithm every 5 frames to improve performance
    #if i%5==0:
    faces = detect_faces(image)
    #print image

    for (x,y,w,h) in faces:
    cv.Rectangle(image, (x,y), (x+w,y+h), 255)


    cv.ShowImage("w1", image)
    i += 1


    And Error I am getting is:

    Traceback (most recent call last):
    File "/home/OpenCV-2.3.1/webcam_try.py", line 38, in <module>
    faces = detect_faces(frame)
    File "/home/OpenCV-2.3.1/webcam_try.py", line 13, in detect_faces
    detected = cv.cvHaarDetectObjects(frame, cascade, storage, 1.2, 2, cv.CV_HAAR_DO_CANNY_PRUNING,(100,100))
    File "/usr/lib/pymodules/python2.7/opencv/cv.py", line 1626, in cvHaarDetectObjects
    return _cv.cvHaarDetectObjects(*args)
    NotImplementedError: Wrong number of arguments for overloaded function 'cvHaarDetectObjects'.
    Possible C/C++ prototypes are:
    cvHaarDetectObjects_Shadow(CvArr const *,CvHaarClassifierCascade *,CvMemStorage *,double,int,int,CvSize)
    cvHaarDetectObjects_Shadow(CvArr const *,CvHaarClassifierCascade *,CvMemStorage *,double,int,int)
    cvHaarDetectObjects_Shadow(CvArr const *,CvHaarClassifierCascade *,CvMemStorage *,double,int)
    cvHaarDetectObjects_Shadow(CvArr const *,CvHaarClassifierCascade *,CvMemStorage *,double)
    cvHaarDetectObjects_Shadow(CvArr const *,CvHaarClassifierCascade *,CvMemStorage *)

    Continue reading...

Compartilhe esta Página