现在的程序是在VS2010上创建的,结合使用了C++和OpenCV2,主要做得是人脸识别和其他一些分析的事情,现在要移植到Linux系统,这两天移植完成了,现在总结一下。
用过OpenCV都应该非常熟悉OpenCV在VS的配置使用了,无非就是设置一下include、库路径、要使用的库等,设置完了就可以使用OpenCV了。现在的程序大概分为两部分,有一个Facelib库,这个是intel研究院自己开发的,也用到了OpenCV2,我们使用的是这个库来进行人脸识别,而没有使用现在OpenCV2.4版本之后才有的FaceRecognizer类。所以,得先使用VS2010编译这个库产生我们需要的facelib.dll,以便我们程序中使用。但在Linux系统下,dll文件是不可以使用的,我们得重新编译生成.so文件。在Ubuntu下我们使用Eclipse创建工程,使用Eclipse很省劲,它还能自动生成MakeFile文件。
首先使用Eclipse创建一个SharedLibrary工程,在工程属性-->C/C++ Building -->Setting中设置好OpenCV的include路径、库路径和要包含的库。编译生成,没有错误的话就会在Debug文件下生成我们需要的libfacelib.so文件。编译过程中当然出现了各种各样的错误,都通过Google一一解决了。现在记着出了什么SSE3错误,这时在C/C++ Building -->Optimization 下加上 -SSE3 -SSE4.2 。还出现了max使用错误等问题,很奇怪把std::max 或 std::min加上括号换成(std::max) 或 (std::min)就好了。