opencv代码裁剪

版权声明:人工智能/机器学习/深度学习交流QQ群:811460433 , 微信公众号:程序员深度学习 https://blog.csdn.net/sinat_24143931/article/details/86747986
人工智能/机器学习/深度学习交流QQ群:964753462
也可以扫一扫下面二维码加入微信群,如果二维码失效,可以添加博主个人微信,拉你进群
微信公众号:分享人工智能最新技术、职业发展以及个人成长

编译caffe时用到了opencv,其实caffe只用到OpenCV很小一部功能 ,具体就是opencv_core,opencv_imgproc,opencv_highgui三个库,用于图像读写,如果能将这个三个库全静态编译,就能让caffe在运行时不再依赖opencv。
但是opencv_highgui库在读写jpeg,png,tiff,jpeg2000图像格式时用到了第三方编解码库,默认编译opencv时opencv_highgui是动态连接系统中的图像编解码库(如/usr/lib/libpng用于tiff……),既然要做静态库,当然要把这些解码库也静态编译进来,怎么办呢?
其实opencv源码中3rdparty文件夹下本就包含了这些图像解码库,只要在cmake生成Makefile脚本时指定编译这些库就好了。

1. CMake配置

下面全静态编译opencv_core,opencv_imgproc,opencv_highgui三个库的cmake配置命令,
#后面是注释部分,使用时请删除

# $install_path用于指定安装位置
# -DBZIP2_LIBRARIES定义bzip2库的位置
cmake . -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$install_path \
    -DBZIP2_LIBRARIES=$BZIP2_INSTALL_PATH/lib/libbz2.a \
    -DBUILD_DOCS=off \
    -DBUILD_SHARED_LIBS=off \    # 指定编译静态库,默认编译动态库(.so,.dll)
    -DBUILD_FAT_JAVA_LIB=off \
    -DBUILD_TESTS=off \ 
    -DBUILD_TIFF=on \  # 编译3rdparty/libtiff项目 
    -DBUILD_JASPER=on \  # 编译3rdparty/libjasper项目用于jpeg2000图像编解码
    -DBUILD_JPEG=on \            # 编译3rdparty/libjpeg项目用于jpeg图像编解码
    -DBUILD_OPENEXR=on \         # 编译3rdparty/openexr项目
    -DBUILD_PNG=on \             # 编译3rdparty/libpng项目用于png图像编解码
    -DBUILD_TIFF=on \            # 编译3rdparty/libtiff项目用于tiff图像编解码
    -DBUILD_ZLIB=on \            # 编译3rdparty/zlib项目
    -DBUILD_opencv_apps=off \    # 以下BUILD_opencv_XXXX选项用于选择或反选指定的opencv模块
    -DBUILD_opencv_calib3d=off \
    -DBUILD_opencv_contrib=off \
    -DBUILD_opencv_features2d=off \
    -DBUILD_opencv_flann=off \
    -DBUILD_opencv_gpu=off \ 
    -DBUILD_opencv_java=off \ 
    -DBUILD_opencv_legacy=off \ 
    -DBUILD_opencv_ml=off \ 
    -DBUILD_opencv_nonfree=off \ 
    -DBUILD_opencv_objdetect=off \ 
    -DBUILD_opencv_ocl=off \ 
    -DBUILD_opencv_photo=off \ 
    -DBUILD_opencv_python=off \ 
    -DBUILD_opencv_stitching=off \ 
    -DBUILD_opencv_superres=off \ 
    -DBUILD_opencv_ts=off \ 
    -DBUILD_opencv_video=off \ 
    -DBUILD_opencv_videostab=off \ 
    -DBUILD_opencv_world=off \ 
    -DBUILD_opencv_lengcy=off \ 
    -DBUILD_opencv_lengcy=off \ 
    -DWITH_1394=off \ 
    -DWITH_EIGEN=off \ 
    -DWITH_FFMPEG=off \ 
    -DWITH_GIGEAPI=off \ 
    -DWITH_GSTREAMER=off \ 
    -DWITH_GTK=off \ 
    -DWITH_PVAPI=off \ 
    -DWITH_V4L=off \ 
    -DWITH_LIBV4L=off \ 
    -DWITH_CUDA=off \ 
    -DWITH_CUFFT=off \ 
    -DWITH_OPENCL=off \ 
    -DWITH_OPENCLAMDBLAS=off \ 
    -DWITH_OPENCLAMDFFT=off
# 开始编译opencv,并安装到指定位置,
# -j 8 指定8线程并行编译
make -j 8 install

2. 最后

欢迎大家扫一扫下面二维码加入微信交流群,如果二维码失效,可以添加博主个人微信,拉你进群

猜你喜欢

转载自blog.csdn.net/sinat_24143931/article/details/86747986
今日推荐