最近,我成功地编译了最新的opencv3.1并支持cuda。 经过一番修补之后,我将我的大部分python代码从2.4.x正确地转换为3.1.x,没有任何问题。在
但当需要尝试stereCalibrate功能时,出现了错误:
Exception in thread Thread-5:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "./stereo_compute.py", line 245, in calibrate
flags)
TypeError: an integer is required
以下是我如何称呼函数本身:
^{pr2}$所有的东西都在一个线程中运行,这就是为什么在异常中提到它。在
我找不到一组正确的参数。在
此外,我在2.4.x版本下使用相同的数据集进行了调用。在
请帮忙!在
我注意到,对于OpenCV的Python绑定,如果一个函数有一个具有默认值的参数,比如
None
,那么通常不能显式地将该参数与其默认值一起使用。这完全违反了常规的Python约定和预期行为。在例如,函数
cv2.goodFeaturesToTrack
的参数blockSize
具有默认值None
,因此您可能希望调用会和
^{pr2}$但实际上,第一种使用此函数的方法将导致
因此,使用OpenCV,要么不提供and参数,要么提供正确的值(根据Python函数/方法签名,默认值可能不正确)。在
<>你必须检查C++源找到实际的默认值。在相关问题 更多 >
编程相关推荐