我有一个曾经工作的应用程序。我最近有一个完整的重新安装,并试图让应用程序再次运行,但我已经遇到了标题中的问题。对于调查或试图让它发挥作用的后续步骤,我将不胜感激。
会发生什么:
ctypes_opencv.cvLoadImage('tmp.bmp', 1) #or a fully specified path
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python32_32bit\lib\site-packages\ctypes_opencv\highgui.py", line 289, in cvLoadImage
z = pointee(_cvLoadImage(filename, iscolor))
ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
我尝试直接使用highgui.py的_cvLoadImage并得到了同样的错误。我认为它不会进入pointee()函数。
我无法找到任何可以传递给函数的东西,以使它不会给我一个TypeError。希望我遗漏了一些明显的东西,但我没有改变以前工作过的代码。
该系统的设置:
答案 0 :(得分:0)
Aaargh。我想到了。 ctypes_opencv显然不接受unicode字符串。所以使用bytes literal工作。
ctypes_opencv.cvLoadImage(b'tmp.bmp', 1)
我还没有担心尝试,因为它曾经用于我的3.1.x安装。从3.x开始,所有的字符串都不是unicode吗?我自己写了代码,所以我确信自从我最后使用它以来它没有被改变。