• ubuntu1804.6从源码编译opencv4.5和扩展库和cuda10.1


    https://blog.csdn.net/qianbin3200896/article/details/107894029

    1下载opencv源码

    从github上下载最新的opencv

    https://github.com/opencv/opencv/tags

     

    2下载扩展库源码 

    下载完opencv以后再下载opencv_contrib

    https://github.com/opencv/opencv_contrib/tags

    将opencv_contrib文件夹移动到opencv文件夹里。然后在opencv文件夹里建立build文件夹,如下图所示:

    接下来打开终端。进入build文件夹,然后安装环境依赖:

    sudo apt-get install build-essential 
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev
    

      

    接下来为了安装方便不容易出错,建议使用cmake-gui安装,安装命令如下:

    sudo apt-get install cmake-gui
    

      

    安装完毕打开cmake-gui,命令:

    cmake-gui 
    

    在Where is the source code:选择opencv目录位置,在Where to build the binaries:选择build位置如下图所示:

    选择完毕点击Configure,然后会弹出编译器选项,选择Unix Makefiles即可。

    配置完毕如下图所示:

    根据个人需要使用用cuda

    找到BUILD_opencv_world,后面的方框点上勾;

     

    找到在CMAKE_BUILD_TYPE 值处输入RELEASE,根据需要是否编译DEBUG,其他保持不变;

    找到OPENCV_ENABLE_NONFREE,在后面的方框点上勾(有的算法有专利,不点这个不能用,比如sift);

    找到OPENCV_EXTRA_MODULES_PATH,选择opencv_contrib文件夹中的modules文件夹,注意是modules文件夹(我的路径是/home/qianbin/opencv/opencv_contrib/modules)。

    找到BUILD_TIFF,后面的方框点上勾;

    生成python3版本的所有路径信息输入

    确保安装了numpy,没有安装就安装,然后关闭cmake重新的打开

    取消python2的编译,找到BUILD_opencv_python2,后面方框点沟掉;

    点击Add Entry,添加BUILD_opencv_python3。

    其他python路径是开始自动读取的,核对下

    然后搜索python3,对应的项目修改如下:

    examples可选可不选(蓝色的)

    未来如果安装的是aconda下面的python如何连接这个opencv便宜的库暂时不做考虑(下图诗歌网友的参考)

     完成以上工作再点击Configure,耐心等一等,如果上面还有红色的再点击Configure,之到没有红色为止。

    Configure完成之后点击Generate,等一等即可。

    正常情况下,等Generate完成之后,我们可以直接在build目录下输入命令:

    make
    

    额外出错

    (我在来联想y7000 UBUNTU1804 开启某墙模式下,他自动下载了不用管。)

    进行编译工作了。实际上这样很可能出错,我在编译了10分钟后报错了,出错的原因一般都是说缺少什么文件,缺少的文件主要是Cmake在配置时由于网络不好没下载下来。我在位于build下的CmakeDownloadLog.txt可以查看到有哪些文件下载失败。经常下载失败的文件我上传到了网盘,

    这些文件我整理了百度网盘便于下载

    链接:https://pan.baidu.com/s/1h1geuNg9bdDNiRNpJ6Dq_w
    提取码:zht4

     

    第一批文件,手动下放在相对路径

    opencv-4.5.1/build/downloads/xfeatures2d
    

     第二批文件 -测试样例所需的人脸模型文件

      

    /opencv-4.5.1/build/share/opencv4/testdata/cv/face/"
    

     

      

    如果没有务必拷贝到build目录下的downloads/xfeatures2d文件夹里。我在安装时还有一个文件face_landmark_model.dat没有下载成功,将该文件放到build目录下的/share/opencv4/testdata/cv/face目录下,如果没有目录可自行建立。检查拷贝完毕,最好再次Configure一下,直到没有上面没有红色为止,然后再点击Generate。如果不放心可以再次检查日志。

    最后在build目录下重新输入命令:

    make
    

      

    上述过程需要十几分钟甚至更长(取决于机器性能),编译不出错完成之后,出现下图所示界面:

    接下来在build目录下输入命令:

    sudo make install
    

      

    即可安装。最后所有文件将被安装到目录“/usr/local/”下面。

    配置opencv

    安装完成后,手动创建opencv.pc:

    cd /usr/local/lib
    sudo mkdir pkgconfig && cd pkgconfig
    sudo gedit opencv.pc
    

      然后添加:

    prefix=/usr/local
    exec_prefix=${prefix}
    includedir=/usr/local/include
    libdir=/usr/local/lib
     
    Name: OpenCV
    Description: Open Source Computer Vision Library
    Version: 4.4.0
    Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
    Libs.private: -ldl -lm -lpthread -lrt
    Cflags: -I${includedir}
    

     

     更改环境变量,输入命令:

    sudo gedit /etc/bash.bashrc
    

      打开之后,在文件最后面添加以下内容:

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
    

     

     保存退出,opencv基本上就安装完成了。通过 pkg-config 查看 opencv 版本:

    pkg-config --modversion opencv

     小程序测试

    找到 opencv-4.5.1/samples/cpp/example_cmake 目录下,官方已经给出了一个cmake的example,我们可以拿来测试下。按顺序执行:

    cmake .
    make
    ./opencv_example
    

      即可看到打开了摄像头,在左上角有一个hello opencv ,即表示配置成功。

     

     安装完成后进行python测试,如下所示:

     

    https://blog.csdn.net/weixin_34910922/article/details/108653966

     

  • 相关阅读:
    [ZJOI2007]仓库建设(斜率dp优化)
    [HNOI2008]玩具装箱toy(斜率优化dp)
    2019牛客暑期多校训练营(第十场)F-Popping Balloons
    2019牛客暑期多校训练营(第十场)B-Coffee Chicken
    子集的生成—二进制枚举
    2019牛客暑期多校训练营(第九场)D-Knapsack Cryptosystem(思维+子集和)
    2019牛客暑期多校训练营(第九场) E-All men are brothers(并查集+组合数学)
    字符串的最小表示法
    2019牛客暑期多校训练营(第八场)
    [HDU4734] 不要62(数位dp入门)
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/14232440.html
Copyright © 2020-2023  润新知