1、此版opencv貌似存在图片处理上的bug,在arm类的CPU上编译时会在photo上报错,所以得加上 -DBUILD_opencv_xphoto=OFF -DBUILD_opencv_optflow=OFF -DBUILD_opencv_rgbd=OFF 参数,把xphoto屏蔽掉。
2、在arm类的cpu上的linux 编译是不会下载ffmpeg库,即使添加了–DWITH_FFMPEG=ON 也一样,得使用系统APT或YUM下载的 ffmpeg 和相关库并安装才能找到并编译,但如果是有裁剪和嵌入的FFMPEG的需要,就需要自行编译FFMPEG.
3、编译FFMPEG不能使用静态库,并且需要把avresample 加入ffmpeg的编译,否则在编译OPENCV时,会提示找不到avresample 的引用而导致编译报错
4、需要加入-DOPENCV_EXTRA_MODULES_PATH 扩展库,否则在编译OPENCV时会报缺少引用而编译失败
5、怀疑是因为旧版本的编译器的关系,例如是在SS928(即海思3403)的交叉编译器上编译,在编译测试程序时会报错。需要加入-DBUILD_TESTS=OFF 强制不编译OPENCV的测试程序
最后,以下是我在SS928(即海思3403)编译环境上使用的完整OPENCV和FFMPEG的预编译命令:
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_world=ON -DCMAKE_INSTALL_PREFIX=./install -DBUILD_opencv_xphoto=OFF -DBUILD_opencv_optflow=OFF -DBUILD_opencv_rgbd=OFF -DWITH_FFMPEG=ON -DOPENCV_EXTRA_MODULES_PATH=../../modules -DBUILD_TESTS=OFF ..
./configure –enable-gpl –enable-libx264 –prefix=./install –enable-pic –enable-avresample –enable-shared –disable-static