懒人笔记-opencv篇<ubuntu>

这篇博客介绍了在Ubuntu 16.04上编译OpenCV 3.4.3的详细步骤,包括依赖库的安装、源码下载和编译过程。在编译过程中,提到了可能出现的错误和解决方案,如缺少boostdesc_bgm.i文件、cuda.hpp文件以及编译到99%时的错误,并提供了相应的解决办法。
摘要由CSDN通过智能技术生成

前言

   由于项目的需要,需要做TIFF和JPEG的图片转换,百度了一圈,发现还是这个方案可操作性最强。之前一直在window上玩,用GDI+可以实现,现在跑到LINUX上了,简直就是新手一枚,弱爆了,特此把整个过程给记录下来,供后面有需要的人借鉴和学习。

编译环境

  • 操作系统:Ubuntu 16.04 TS 、中标麒麟
  • Opencv版本: opencv-3.4.3源码
  • 权限说明:建议用root权限来执行以下命令

操作流程

1、依赖库安装

  • 软件源更新
    sudo apt-get update

  • 升级本地所有安装包,最新系统可以不升级,版本过高反而需要降级才能安装
    sudo apt-get upgrade

  • 安装构建OpenCV的相关工具(安装build-essential、cmake、git和pkg-config)
    sudo apt-get install build-essential cmake git pkg-config

  • 安装常用图像工具包:

    • 安装jpeg格式图像工具包
      sudo apt-get install libjpeg8-dev

    • 安装tif格式图像工具包
      sudo apt-get install libtiff5-dev

    • 安装JPEG-2000图像工具包
      sudo apt-get install libjasper-dev

    • 安装png图像工具包
      sudo apt-get install libpng12-dev

  • 安装视频I/O包(注意最后一个包的数字“4”后面是“L”):
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

  • 安装gtk2.0(ubuntu有可能出现包版本过高的情况,需要将依赖包降级安装)
    sudo apt-get install libgtk2.0-dev

  • 优化函数包
    sudo apt-get install libatlas-base-dev gfortran

好啦,依赖包搞定啦,恭喜!

2、下载源码包

  • 使用wget下载OpenCV源码;

  • 也可以到https://github.com/opencv/opencv/releases下载OpenCV3.4.3的源代码*. tar.gz格式(LINUX格式),需要解压好,放到用户目录下;

  • 使用wget下载OpenCV_contrib,网友亲测直接到Github下载zip文件的话,会有编译问题;

    • // 下载OpenCV
      wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip

    • // 解压OpenCV
      unzip opencv-3.4.3.zip

    • // 下载OpenCV_contrib库:
      wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip

    • // 解压OpenCV_contrib库:
      unzip opencv_contrib-3.4.3.zip

3、编译源码包

接下来这个是关键,会有许多坑,请系好安全带,收好榔头,杜绝翻车!

(1) 打开源码文件夹
cd opencv-3.4.3

(2) 新建release文件夹
mkdir release

(3) 进入release文件夹
cd release

(4) 设置cmake编译参数
安装目录默认为/usr/local,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点(注意!如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/joeya/opencv_contrib-3.4.3/modules)

CMAKE_BUILD_TYPE是编译方式
CMAKE_INSTALL_PREFIX是安装目录
OPENCV_EXTRA_MODULES_PATH是加载额外模块
INSTALL_C_EXAMPLES是安装C语言的例程
BUILD_EXAMPLES是编译例程(这个可以不加,不加编译稍微快一点点)

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules
-D INSTALL_C_EXAMPLES=ON
-D BUILD_EXAMPLES=ON …

(5) 正式编译过程
编译,以管理员身份,否则容易出错make命令参数-j4指允许make使用最多4个线程进行编译 所以可以根据自己机器的情况进行更改;
sudo make -j4
先用以上命令跑,可以加快速度,如果碰到问题,就用sudo make 再跑一边,编译中止会提示出错的原因。我安装的过程中报了两个错(其实安装了好几遍),一个缺少boostdesc_bgm.i(下载之后放在提示的路径里),另一个是提示缺少/opencv/xfeatures2d/cuda.hpp(把opencv-conrtib.3.4.3/…/opencv2/下的内容,考到/opencv-3.4.3/modules/stitching/include/opencv2/下 就好了!!!)

  安装
  sudo make install
  
 更新动态链接库,这个必须搞,否则后面开发还会编译错误的。
 sudo ldconfig

(6) 编译过程中出现的问题
1.在编译到后半段的时候一般会出现openc_contrib 提示缺少boostdesc_bgm.i文件而出错
这个是由于官方所给的那两个包不全,(没有此错误的可以忽略)

解决方法如下:
百度云盘里下载然后将所有带i结尾的文件全部都拷贝到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可
安装opencv时丢失的文件:
链接:https://pan.baidu.com/s/1xi6_5NuTFiP4SD649FgIJw
提取码:mbsj
然后继续上面的编译操作即可

2.在编译到94%左右时可能会出现fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录的错误标志 (没有此错误的可以忽略)

解决方法如下:
将/home/…/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2目录下的xfeatures2d文件夹和xfeatures2d.hpp文件复制粘贴到
/home/…/opencv-3.4.0/modules/stitching/include/opencv2目录下即可解决,

3.在编译到99%左右时可能会出现
make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:63:modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:21769:modules/python3/CMakeFiles/opencv_python3.dir/all]
错误 2:
make: *** [Makefile:163:all] 错误 2 的错误标志(没有此错误的可以忽略)
这个可能是由于系统版本不同的不兼容所致
解决方法如下:
首先找到/home/pi/Downloads/opencv-3.4.0/modules/python/src2 中的cv2.cpp文件,
然后在第885行把char* 改成 const char* 即可解决,最后继续上面的编译操作即可。

4、懒人笔记完结。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羽毛乱发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值