大多数 cv2 元组参数在 python 3.5(windows 7)中不起作用
Posted
技术标签:
【中文标题】大多数 cv2 元组参数在 python 3.5(windows 7)中不起作用【英文标题】:most cv2 tuple arguments don't work in python 3.5 (windows 7) 【发布时间】:2018-02-16 08:55:22 【问题描述】:我将一个项目从 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() 解决了问题
【问题讨论】:
根据***.com/questions/13225525/…您的问题也可能与枕头有关... 【参考方案1】:在 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”的类型或其值的类型有关(请参阅我作为问题评论发布的链接)
【讨论】:
你是对的,被拒绝的元组是我的 x,y 而不是 rgb。谢谢以上是关于大多数 cv2 元组参数在 python 3.5(windows 7)中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
关于“cameraMatrix”不是数字元组的cv2.stereocalibrate()错误