我将一个项目从 python 2.7 切换到 3.5,现在我无法使用大多数需要元组的函数。
举个例子:
rgb = (255,0,0)
cv2.circle(img,(x, y),2,rgb,-1)
将返回“new style getargs format but argument is not a tuple”系统错误。
无论我如何输入表示圆圈颜色的元组,它总是会失败,即使我明确使用“tuple()”也是如此
我意识到这个问题并不新鲜,但可用的解决方案取决于包(https://mail.python.org/pipermail/python-dev/2017-January/147091.html)。
当同一脚本已经在使用 opencv 时,我只想在图像上放置点而不必引入另一个库。
编辑:它在提示 x,y。这在 2.7 而不是 3.5 中起作用的原因尚不清楚,但特别声明该值作为 tuple() 解决了这个问题
最佳答案
在 Python 3.5 中,以下工作:
import numpy as np
import cv2
img = np.zeros((100, 100)) # Black image
rgb = (255, 0, 0)
cv2.circle(img, (50, 50), 2, rgb, -1) # Plot centered on (50, 50)
你能在你的系统上试试这个,看看错误是否仍然存在吗?
(使用 Windows 10、Anaconda3、OpenCV 3.1.0)
如果这有效,您的问题可能与变量“img”的类型或其值的类型有关(请参阅我作为您问题的评论发布的链接)
关于opencv - 大多数 cv2 元组参数在 python 3.5 (windows 7) 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099395/