linux 搭建opencv开发环境

  1. ubuntu12

  2. 安装编译工具:

    sudo apt-get install build-essential

    编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。

    Linux平台上安装OpenCV
  3. 2

    安装 cmake、git、pkg-config等辅助工具:

    sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev

    Linux平台上安装OpenCV
  4. 3

    安装关联库:

    sudo apt-get install python-dev python-opencv python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

    Linux平台上安装OpenCV
    END

二、编译OpenCV

  1. 1

    从网上下载OpenCV-3.0.0.zip。

    下载地址:

    http://opencv.org/downloads.html

    Linux平台上安装OpenCV
  2. 2

    如果使用虚拟机,最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译,一定不能在虚拟机在Windows系统里的共享文件夹下进行编译,否则会因为文件系统(Windows7的文件系统是NTFS,ubuntu-15.10的文件系统是)不同在编译过程中出错。鄙人在共享文件夹下进行编译,编译进行到%15时报错,我修复后又在编译进行到%21时报错,反正是各种错误,我是没有能力继续修复了......

    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
  3. 3

    最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译:

    mv [OpenCV-3.0.0.zip存放路径] ~/opencv_3.0.0.zip

    unzip opencv_3.0.0.zip

    cd opencv-3.0.0

    mkdir release

    cd release

    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
  4. 4

    CMake是一个跨平台的编译工具,想深入学习cmake命令的可以百度一下。

    编译命令:

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..

    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
  5. 5

    make命令(-j表示用几个线程来编译,这样可以加快编译速度,不过这个与makefile的质量有关,有的工程用了-j会编译出错):

    make -j $(nproc)

    上述命令后一般大约要耗时1个小时,甚至更多,视个人电脑硬件配置而定。

    执行完以后不要忘了make install:

    sudo make install

    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
  6. 6

    如果编译过程出错后想要重新编译,把release目录下的CMakeCache.txt删除掉即可。

    Linux平台上安装OpenCV
    END

三、设置环境变量

  1. 1

    添加库路径:

    sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

    Linux平台上安装OpenCV
  2. 2

    更新系统库:

    sudo ldconfig

    Linux平台上安装OpenCV
    END

四、用cmake进行测试

  1. 1

    DisplayImage.cpp中的源代码:

    #include <stdio.h>

    #include <opencv2/opencv.hpp>

    using namespace cv;

    int main(int argc, char** argv)

    {

        if ( argc != 2 )

        {

            printf("[usage]: %s <Image_Path>\n", argv[0]);

            return -1;

        }

        Mat image;

        image = imread( argv[1], 1 );

        if ( !image.data )

        {

            printf("No image data!\n");

            return -1;

        }

        namedWindow("Display Image", WINDOW_AUTOSIZE );

        imshow("Display Image", image);

        waitKey(0);

        return 0;

    }

    Linux平台上安装OpenCV
  2. 2

    CMakeLists.txt中的源代码:

    cmake_minimum_required(VERSION 2.8)

    project( DisplayImage )

    find_package( OpenCV REQUIRED )

    add_executable( DisplayImage DisplayImage.cpp )

    target_link_libraries( DisplayImage ${OpenCV_LIBS} )

    Linux平台上安装OpenCV
  3. 3

    编译命令:

    cmake .

    make

    运行命令:

    ./DisplayImage 01.jpg

    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
    Linux平台上安装OpenCV
    END

五、用make进行测试

  1. opencv_test.cpp中的源代码:

    #include "cv.h"

    #include "highgui.h"

    #include <iostream>

    using namespace std;

    #define PICTURE "./01.jpg"

    int main(void)

    {

        IplImage* img = cvLoadImage(PICTURE, 0);

        cvNamedWindow( "test", 0 );

        cvShowImage("test", img);

        cvWaitKey(0);

        cvReleaseImage( &img );

        cvDestroyWindow( "test" );

        return 0;

    }

    Linux平台上安装OpenCV
  2. Makefile中的源代码:

    CXX          = g++

    CFLAGS    = -Wall 

    LDFLAGS  = `pkg-config --cflags --libs opencv`

    SRCS = $(wildcard *.cpp)

    TARGETS = $(patsubst %.cpp, %, $(SRCS))

    all:$(TARGETS)

    $(TARGETS):$(SRCS)

        $(CXX) -o $@ $< $(LDFLAGS) $(CFLAGS)

    clean:

        -rm -rf $(TARGETS) *~ .*swp

    .PHONY: clean all

    Linux平台上安装OpenCV
  3. 编译命令:

    make

    运行命令:

    ./opencv_test

    代码写得比较简单,所以显示效果是一张黑白图片。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值