2017-12-10 22 views
0

私はpythonを使用した顔認識のチュートリアルに従っています。これはopencv error cascadedetect.cpp:1639:エラー:(-215)!function(detectMultiScale)の空(

import cv2,os 
    import numpy as np 
    from PIL import Image 

    recognizer = cv2.face.createLBPHFaceRecognizer() 
    detector= cv2.CascadeClassifier("haarcascade_frontalface_default.xml"); 

    def getImagesAndLabels(path): 
#get the path of all the files in the folder 
     imagePaths=[os.path.join(path,f) for f in os.listdir(path)] 
#create empth face list 
     faceSamples=[] 
#create empty ID list 
     Ids=[] 
#now looping through all the image paths and loading the Ids and the images 
     for imagePath in imagePaths: 
    #loading the image and converting it to gray scale 
      pilImage=Image.open(imagePath).convert('L') 
    #Now we are converting the PIL image into numpy array 
      imageNp=np.array(pilImage,'uint8') 
    #getting the Id from the image 
      Id=int(os.path.split(imagePath)[-1].split(".")[1]) 
    # extract the face from the training image sample 
      faces=detector.detectMultiScale(imageNp) 
    #If a face is there then append that in the list as well as Id of it 
      for (x,y,w,h) in faces: 
       faceSamples.append(imageNp[y:y+h,x:x+w]) 
       Ids.append(Id) 
     return faceSamples,Ids 


    faces,Ids = getImagesAndLabels('trainingImage') 
    recognizer.train(faces, np.array(Ids)) 
    recognizer.save('trainer/trainer.yml') 

を使用してコードイムであり、これは

トレースバック(最新の呼び出しの最後)の取得エラーメッセージイムです: ファイル「/ホーム/ PI/pythonpy/videofacedet /クラフト/ codacusを/の顔の「trainer.py」32行目、getImagesAndLabelsのの「/home/pi/pythonpy/videofacedet/craft/codacus/trainer.py」ファイルの245行目、 ファイル.detectMultiScale(imageNp) エラー:/home/pi/opencv-3.1.0/modules/objdetect/src/cascadedetect.cpp:1639:エラー:(-215)!empty()in function detectMultiScale

私が指しているフォルダ(trainingImage)は空であると言われていますが、そうではありません。私はチュートリアルの作者が使用したのと同じファイル名の形式で、私の顔のトレーニング画像をそこに置きます。私はこの問題を助けてくれる人がいたらいいのに。

答えて

0

問題を解決しました。私はhaarascascade xmlパスを間違っていた。パスを修正し、期待どおりに動作しています。

関連する問題