C语言 cvFindExtrinsicCameraParams2() error on iPhone 4



当使用cvFindExtrinsicCameraParams2()方法时,我在OpenCV (v1.1,2.0,2.2)中出现错误,它适用于iPhone3GS,但在iPhone4上测试时摔倒。错误是:

"释放对象的校验和不正确-对象可能在释放后被修改"

我最终将大量的cvMat类型转换为浮点数,而不是双精度,这解决了问题,但引入了结果溢出,给了我一些奇怪的结果。

iPhone4有双栈限制吗?

无论如何-只是想知道是否有人已经解决了这个问题?

我不知道为什么你有错误,但回答你的问题,堆栈有一个有限的大小。

在大多数系统中,float的大小为4字节,double的大小为8。因此,当您使用double来表示您的数据时,您实际上使用的空间是float的两倍。

一个简单的解决方法(如果可以的话)是在HEAP而不是堆栈上为cvMat分配内存。要做到这一点,声明一个指针do cvMat,并使用new操作符为它分配空间。

线程管理文档指出,iOS主线程的堆栈大小为1mb,辅助线程为512K。您可能需要在主线程上执行处理的核心。

相关内容

  • 没有找到相关文章

最新更新