简单cvLoadImage上的ctypes_opencv TypeError

时间:2012-04-19 00:09:39

标签: opencv python-3.x ctypes

我有一个曾经工作的应用程序。我最近有一个完整的重新安装,并试图让应用程序再次运行,但我已经遇到了标题中的问题。对于调查或试图让它发挥作用的后续步骤,我将不胜感激。

会发生什么:

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 32位,但这次我找不到安装程序)
  • opencv 1.0(我从来没有运气ctypes_opencv和opencv&gt; 1.0)
  • ctypes_opencv 0.8.0

1 个答案:

答案 0 :(得分:0)

Aaargh。我想到了。 ctypes_opencv显然不接受unicode字符串。所以使用bytes literal工作。

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

我还没有担心尝试,因为它曾经用于我的3.1.x安装。从3.x开始,所有的字符串都不是unicode吗?我自己写了代码,所以我确信自从我最后使用它以来它没有被改变。