OpenCV2.4.9 + Ubuntu15.04配置

为了run Car-Detection安装了OpenCV。

基本上就照着这个弄下来:

ubuntu14.04 + OpenCV2.4.9 配置方法

 

1.  安装openCV 所需依赖库或软件:

  sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev

  若期间遇到问题,很有可能是源的问题,可以通过以下方式解决:

 

  (1) 打开搜索 →  search: softwares & updates → Ubuntu Software → Download from , 选一个比较好的源(163 、阿里云或者中科大)

  (2) sudo apt-get update 更新源(若是校园网,可能在更新源的时候遇到hashsum mismatch的问题,解决方式请看这里

 

2. 从官网上下载opencv 2.4.9源码

3. 解压到任意目录

  unzip opencv-2.4.9.zip

 

4. 进入源码目录,创建release目录

     cd opencv-2.4.9

  mkdir release

5.  进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下

 

  cd release

 

6. cmake生成编译脚本

 

  cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=OFF -D WITH_OPENMP=ON -D WITH_QT=ON ..

       注:这里-D的作用是设置编译的选项,如选择release模式, 输出的目录,不编译cuda模块,编译openMP与QT模块,这里的QT模式带有很强的可视化效果,推荐。但需要在第一步中加上 libqt4-dev 安装QT环境


7. 安装(编译)

 

  sudo make install

 

8. 测试,在某个目录下建立一个test.cpp文件

#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\n");  
        return -1;  
    }  
  
    namedWindow("Display Image", CV_WINDOW_AUTOSIZE);  
    imshow("Display Image", image);  
    waitKey(0);  
    return 0;  
}

 

9. 写一个cmake的makefile,也叫CMakeLists.txt,文件内容如下:

  project(test)  
  find_package(OpenCV REQUIRED)  
  add_executable(test test)  
  target_link_libraries(test ${OpenCV_LIBS})  
  cmake_minimum_required(VERSION 2.8)

 

10. 编译+运行测试程序

  cmake .

  Make

  得到可执行文件test

 

11. 结果

运行了test以后,如果事先选择了QT,则会有如下的效果,可以通过窗口上的按钮实现放大平移保存,甚至可以查看具体的像素值:

 

 

11. reference

配置:

http://my.oschina.net/u/1757926/blog/293976?fromerr=BFgyQ6oi

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

 

opencv 下载地址

http://opencv.org/downloads.html

 

遇到的问题:

http://blog.csdn.net/tjusxh/article/details/41944403

http://blog.csdn.net/jq0123/article/details/7398632

 

期间也出线了一些问题,比如绕过其中一个共享库,叫什么忘了,已经解决通过修改第6步:cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=OFF -D WITH_OPENMP=ON -D WITH_QT=ON ..

中加上了 xx=OFF,反正也永不到xx所以就跳过了。

 

关于使用:

  一共两种方法,我使用的是第一种命令行编译cpp文件 http://www.cnblogs.com/woshijpf/p/3840530.html

gcc car_detect.cpp -o car_detect `pkg-config --cflags --libs opencv`

  出现错误:

/usr/bin/ld: /tmp/ccY4JA2M.o: undefined reference to symbol '__cxa_guard_acquire@@CXXABI_1.3'
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

  在编译的时候增加了一个c++的链接库解决: -lstdc++

gcc car_detect.cpp -o car_detect `pkg-config --cflags --libs opencv` -lstdc++

 

posted on 2017-05-08 16:47  暴力的轮胎  阅读(429)  评论(0编辑  收藏  举报

导航