开发板为utu-S3C2440,使用arm-linux-gcc 2.95.3编译opencv-1.0.0成功,在开发板中也可运行基本的opencv函数(cvSave,cvLoad等);
但是接下来发现很多在PC(ubuntu8.10)上运行正常的代码,交叉编译后通过NFS在arm下运行,虽不报错但得不到正确的结果:
比如,使用cvThreshold处理灰度图像得到的图片像素全为0或是全为255。计算灰度直方图时,cvCalcHist( &frame, hist, 0, 0 ),通过cvGetReal1D(hist->bins,i)得到的值全为0等等。
以及前面帖子提到的cvRound,cvFloor等函数也得不到正确结果, (据说是由于浮点运算算法导致的,不知前面提到的这些函数是否也是因为这个原因而失效的?)
小弟最近刚开始接触嵌入式linux编程以及opencv到arm上的移植,最终目的是想在arm上实现camshift算法作图像识别跟踪,但遇到了很多问题。不知上面说的这些函数有没有在arm上运行成功的先例,修改的思路是怎样的?
因为问题很多,所以问的比较笼统,总感觉arm上程序运行方式和在PC上是不同的,但又不知不同在哪里(交叉编译器的原因还是运行平台本身的原因,如对浮点运算没有很好的支持?),如何做出相应的修改,恳请各位达人指点迷津,给出一个让我努力的方向即可!! |