opencv2.4.9:为caffe编译精简的opencv_core,opencv_imgproc,opencv_highgui全静态库
来源:互联网 发布:tcp20端口和21端口 编辑:程序博客网 时间:2024/06/17 00:22
编译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脚本时指定编译这些库就好了。
下面全静态编译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
使用这个版本的opencv编译出的caffe,用ldd命令查看,可以看出已经没有对opencv的任何依赖了,如下图:
阅读全文
0 0
- opencv2.4.9:为caffe编译精简的opencv_core,opencv_imgproc,opencv_highgui全静态库
- opencv2.4.9:为caffe编译精简的opencv_core,opencv_imgproc,opencv_highgui全静态库
- 编译opencv2.1静态库
- 编译opencv2.4.8静态库
- VS2010下编译OpenCV2.4.6静态库
- VS2010下编译OpenCV2.4.6静态库
- VS2015+CMake编译OpenCV2.4.13静态库
- OpenCV编译为静态库的补充
- OpenCV编译为静态库的补充
- 史上最可行!VS2008+WIN7环境下编译OpenCV2.1静态库的方法
- linux + cuda7.5 + opencv2.4.8编译caffe
- VS2008重新编译OpenCV2.4.10动态库和静态库
- mhook编译为静态库
- OpenCV编译为静态库
- ubuntu16.04+CUDA8.0+cuDNN5.1+opencv2.4.13+Anaconda的caffe编译过程
- 为Android平台编译支持OpenCL的Opencv静态库
- 编译caffe的dll库
- Opencv2.4.9交叉编译
- Django项目目录结构及一些注意点
- Scrapy-爬虫实战
- HDU-3966-Aragorn's Story(树链剖分)
- java连接Mysql数据库
- IEEE VIS Citations
- opencv2.4.9:为caffe编译精简的opencv_core,opencv_imgproc,opencv_highgui全静态库
- 自动装箱拆箱
- 天气开发4——第二行代码(酷欧天气)
- [AHK]函数的参数是传值,还是传引用?
- ZOJ--1008:Gnome Tetravex(剪枝dfs)
- TCP/IP协议
- IOS Swift3.1 获得文本宽度
- 安卓高级控件
- 动态规划:0-1背包问题