2017-07-14 116 views
0

我收到錯誤:ValueError異常:無效字面對於int()與基體10:'20 r xfa20'

ValueError:invalid literal for int() with base 10 : '20\r\xfa20' 

在這部分代碼:

while True: 
    ret, im = cam.read() 
    gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) 
    faces = faceCascade.detectMultiScale(gray, 1.2, 5) 
    for(x, y, w, h) in faces: 
     a = ser.readline() 
     b = int((a).strip()) 
     print(int(a)) 
     cv2.rectangle(im, (x, y), (x+w, y+h), (225, 0, 0), 2) 
     Id, conf = recognizer.predict(gray[y:y+h, x:x+w]) 
     print conf 
     if(conf < 50): 
      if(Id == 1): 
       Id = "disheet" 
       if(count1 == 0): 
        GPIO.output(13, GPIO.HIGH) 
        ser.write('d') 

我我正在連續發送來自Arduino的20,以便Pi和Arduino之間的通信將開始。

+0

你能告訴我們你是從閱讀本'ser'文件的內容?它看起來像不包含完整的字符串表示形式 – KGS

+1

問題是2「20」值之間的'\ r \ xfa',它似乎是某種控制序列('\ r'是_CR_字符)。閱讀時,你可以對該序列進行拆分,但這是純粹的猜測。 – CristiFati

+0

@service的KGS值是0,1,2 .... 12 –

回答

0
+0

是的,我檢查,但這不適合我 –

+0

對不起,聽到這一點。然後我認爲它與控制序列有關,因爲@CristiFati在上面已經提到它。爲避免出現這種情況,請務必設置r'20 \ r \ xfa20'之類的字符串。這樣控制順序將被忽略。如果您告訴我們錯誤發生在哪一行,我認爲這也會很有趣。 –

相關問題