2014-11-22 66 views
0
for root, dirs, files in os.walk('c:\images'): 
    for fname in files: 
     img = cv2.imread(fname) 
     cv2.resize(img, None, fx=0.4, fy=0.3, interpolation=cv2.INTER_AREA) 
     eyes = eye_cascade.detectMultiScale(img, 1.1, 5) 
     faces = face_cascade.detectMultiScale(img, 1.2, 5) 
     noses = nose_cascade.detectMultiScale(img, 1.1, 5) 
     mouths = mouth_cascade.detectMultiScale(img, 1.1, 5) 

有錯誤圖像文件的人臉檢測的文件夾(使用os.walk)

OpenCV Error: Assertion failed (ssize.area() > 0) in cv::resize, file ..\..\..\..\opencv\modules\imgproc\src\imgwarp.cpp, line 1968 
Traceback (most recent call last): 
    File "C:/FaceDetWeightSave.py", line 19, in <module> 
    cv2.resize(img, None, fx=0.4, fy=0.3, interpolation=cv2.INTER_AREA) 
cv2.error: ..\..\..\..\opencv\modules\imgproc\src\imgwarp.cpp:1968: error: (-215) ssize.area() > 0 in function cv::resize 

我認爲,這個錯誤是從os.walk(for root, dirs, files <- this)。我如何檢測文件?

+0

啊,你的形象似乎是空的。是否有細分人員(例如,每個人)? – berak 2014-11-22 10:36:14

+0

我很抱歉,但我不知道'subdir'< - 是它的子目錄嗎? – 2014-11-22 10:57:18

+0

是的,我的意思是像c:/images/person1/img_003.png – berak 2014-11-22 11:03:24

回答

0

您需要將DIR-名稱,預先準備的圖像名稱,否則你的腳本將找不到鏡像:

for root, dirs, files in os.walk('c:\images'): 
    for fname in files: # fname is the plain filename only 
     src = os.path.join(root, fname) # this is the absolute path to the image 
     img = cv2.imread(src) 
     ... 
+1

我認爲你的意思是前置而不是追加。 – 2014-11-22 11:41:39

+0

^^的確如此,謝謝。 – berak 2014-11-22 11:44:48