• OpenCV 2.4.13 installed in Ubuntu 14 and CMakeLists Demo


    1. 配置编译器环境

    1 [compiler] sudo apt-get install build-essential

    2. 安装OpenCV的依赖包

    1 [required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    2 [optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

    3. cmkae 外部构建

    mkdir build 
    cd build 
    cmake
    -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

    (注意:必须加上-D BUILD_TIFF=ON,否则编译caffe的时候会有这样的错误/usr/lib/libopencv_highgui.so.2.4: undefined reference to XXXXXX)

    4. 安装在主机上

    make -j8
    sudo make install

    5. CMakeLists.txt的写法

    //OpenCV 检查程序
    
    #include <cv.h>  
    #include <highgui.h>  
      
    using namespace cv;  
      
    int main(int argc, char* argv[])  
    {  
        Mat image;  
        image = imread(argv[1], 1);  
      
        if (argc != 2 || !image.data)   
        {  
            printf("No image data
    ");  
            return -1;  
        }  
      
        namedWindow("Display Image", CV_WINDOW_AUTOSIZE);  
        imshow("Display Image", image);  
        waitKey(0);  
        return 0;  
    }

    在同一目录下创建CMakeLists.txt,并写入编译规则

    CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
    PROJECT(test) 
    FIND_PACKAGE(OpenCV REQUIRED)  
    ADD_EXECUTABLE(opencv_test main.cpp)  
    TARGET_LINK_LIBRARIES(opencv_tes ${OpenCV_LIBS})  

    之后利用CMakeLists.txt创建Makefile并完成实例构建

    mkdir build 
    cd build 
    cmake ../
    make 

    编译完成后,在build文件夹下会创建一个opencv_test的可执行文件 

    ./opencv_test filename

    运行文件,将会显示图片内容

    6. 如果对makefile的规则不太熟悉,也可以直接配置gcc的编译选项

    g++ main.cpp -Wl,-rpath=/usr/local/lib -I /usr/local/include/ -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -o opencv_test  

    7.或者安装pkg-config并配置opencv可以避免重复配置opencv

    sudo apt-get install pkg-config
    sudo gedit ~/.bashrc
    
    #最后一行输入
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
    #执行以下命令使配置立即生效
    source /etc/profile
    
    #打开文件,配置opencv lib库路径
    sudo gedit /etc/ld.so.conf.d/opencv.conf
    #opencv的库一般安装在"/usr/local/lib"文件夹下,在文件内添加
    /usr/local/lib
    
    #执行下列命令使之立刻生效
    sudo ldconfig
    g++ main.cpp -Wl,-rpath=/usr/local/lib 'pkg-config --libs opencv --cflags opencv' -o test  //`不是单引号,而是数字1左边的`符号

    注意,如果不添加-Wl, -rpath=/usr/local/lib, 编译是可以通过的,但是相对应的链接库并没有写入到可执行文件内,运行可执行文件时候,会遇到 ./test: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory的错误,虽然添加上了-I和-L和以保证编译成功,但是可执行文件仍然找不到需要连接的动态库。

  • 相关阅读:
    Spring MVC 迁移项目搭建运行
    linux 安装 nginx
    linux 安装 redis
    linux 安装 jdk
    存储过程之游标插入数据
    存储过程之基础语法
    AES加密解密,自定义加密规则记录
    idea破解记录
    Mysql-explain之Using temporary和Using filesort解决方案
    C#多线程学习笔记(朝夕eleven) Task启动方式、Task阻塞、Task.Delay()、多线程异常处理、任务取消、多线程的临时变量、共享数据的lock、Task返回值
  • 原文地址:https://www.cnblogs.com/flyinggod/p/7806179.html
Copyright © 2020-2023  润新知