2017-05-05 53 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))' –

相关问题