0

我有一个曾经可以工作的应用程序。我最近完全重新安装并试图让应用程序再次运行,但我遇到了标题中的问题。对于下一步调查或尝试使其正常工作的任何建议,我将不胜感激。

怎么了:

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 的东西。希望我遗漏了一些明显的东西,但我没有更改以前工作的代码。

本系统的设置:

  • Windows 7的
  • python 3.2.3 32bit(之前的安装是3.1.x 32bit,但这次找不到安装程序)
  • opencv 1.0(我从来没有遇到过 ctypes_opencv 和 opencv > 1.0 的运气)
  • ctypes_opencv 0.8.0
4

1 回答 1

0

啊。我想到了。ctypes_opencv 显然不接受 unicode 字符串。所以使用字节文字是有效的。

ctypes_opencv.cvLoadImage(b'tmp.bmp', 1) 

我并不担心尝试这样做,因为它曾经与我的 3.1.x 安装一起使用。从 3.x 开始,不是所有的字符串都已经是 unicode 了吗?我自己编写了代码,所以我确信自从我上次使用它以来它没有改变过。

于 2012-04-20T06:24:45.680 回答