簡體   English   中英

Python - OpenCV,detectMultiScale輸出沒有逗號分隔x,y,h,w值

[英]Python - OpenCV, detectMultiScale output doesn't have commas separating x,y,h,w values

我相對較新的Python編程和使用OpenCV(並使用stackoverflow),但我似乎找不到其他人遇到過這個問題。 我正在嘗試編寫基於各種教程的基本人臉識別程序,但是,我在這部分代碼中遇到了detectMultiScale輸出的問題。

for image_path in image_paths:
    predict_image_pil = Image.open(image_path).convert('L')
    predict_image = np.array(predict_image_pil, 'uint8')
    faces = faceCascade.detectMultiScale(predict_image)

    for (x, y, w, h) in faces:
        nbr_predicted, conf = recognizer.predict(predict_image[y: y + h, x: x + w])
        nbr_actual = int(os.path.split(image_path)[1].split(".")[0].replace("subject", ""))

每當我運行程序時,我反復得到一個“TypeError:'int'對象不可迭代”錯誤,這導致我檢查“faces”實際上是一個單獨的值列表。 在運行這個稍微修改過的代碼后,顯然情況並非如此。

for image_path in image_paths:
    predict_image_pil = Image.open(image_path).convert('L')
    predict_image = np.array(predict_image_pil, 'uint8')
    faces = faceCascade.detectMultiScale(predict_image)
    print faces

打印到控制台

[[108  55 154 154]]
[[116  62 152 152]]
[[ 95  76 139 139]]
[[118  57 152 152]]
[[107  53 152 152]]
[[ 32  59 153 153]]
[[101  84 137 137]]
[[ 92  53 152 152]]
[[ 85  77 141 141]]
[[ 96  55 156 156]]
[[108  69 145 145]]
[[ 94  47 159 159]]
[[112  83 137 137]]
[[ 56  68 149 149]]
[[103  77 142 142]]

它似乎是打印XYWH坐標而沒有任何逗號分隔它們,這會是TypeError的原因嗎?

如果不是會導致這個問題的原因? 可能有一些我很遺憾的事情。 為了獲得faces模塊,我確實必須使用cmake和visual studio從源代碼構建opencv,但是,我不確定這是否可能是某種原因。

我正在運行WinPython 64bit 2.7.10.3以及從源代碼構建的最新(穩定)OpenCV版本。

似乎問題在於獲得預測功能的信心。 一旦我從代碼中刪除了“,conf”,問題就解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM