2017-05-05 52 views
0

首先,我得到一個預期的str或unicode對象,當試圖將我的速度結果放入cv2.putText函數時發現float。經過一段時間後,我設法將速度讀數轉換爲字符串。要麼我得到無效的語法或預期的字符串或Unicode,發現浮點數

現在,只要我把速度放在cv2.putText,下面的代碼行將有一個syntaxError: invalid Syntax,如果我刪除了下一個,依此類推。只要cv2.putText函數被刪除,它就會再次運行。

if Ydistance >5: 
    velocity = (Ydistance/time) 
    velocity = string(velocity) 
    #print(type(velocity)) 
    cv2.putText(frame, "".format(velocity), (10,500), font, 4, 
     (255,255,255), cv2.LINE_AA) 

    elif Ydistance ==0.0: 
     continue 

string(velocity)是使用velocity = str(velocity)velocity = unicode(velocity)當其轉換爲字符串,類,速度仍然是一個浮子預先

+1

'cv2.putText ...'行被縮進,退出'if/elif/else'塊。在'if'下移動它。 – tdelaney

+0

對不起,這是我不小心,並沒有仔細檢查之前發佈的問題,在代碼中它正確對齊 –

+0

你還有問題嗎?你可以發佈堆棧跟蹤嗎?在更新的問題中,'elif'之前有一個空格,導致另一個縮進問題,並且在'continue'導致語法錯誤之後冒號。 – tdelaney

回答

0

感謝如果我清理間隔(elif的縮進並一致地使用4個空格 - 你似乎有5)並將代碼放在一個循環中,我沒有得到語法錯誤。代碼當然不運行,但語法很好。現在我有一個每個人都可以測試的語法正確程序的演示。

while True: 
    if Ydistance >5: 
     velocity = (Ydistance/time) 
     velocity = string(velocity) 
     #print(type(velocity)) 
     cv2.putText(frame, "".format(velocity), (10,500), font, 4, 
      (255,255,255), cv2.LINE_AA) 

    elif Ydistance ==0.0: 
     continue 

運行它,我得到

Traceback (most recent call last): 
    File "o.py", line 2, in <module> 
    if Ydistance >5: 
NameError: name 'Ydistance' is not defined 

這是偉大的,因爲我不再有語法問題。

+0

我得到了同樣的錯誤在我的,但我的YDistance被定義爲正確的代碼爲: 'YDistance =((dY/px_mm))' –

相關問題