ubuntu下安装opencv及qtcreator集成开发环境配置

时间:2021-08-05 23:07:23

Ubuntu下安装opencv需要以下几步:

1. 首先,在安装opencv之前需要安装一些相关的依赖包或软件,当然,有些软件是ubuntu自带的,再安装一下也无妨,若已经安装,只会检查更新,若已经是最新版则什么也不做,下面进行依赖库的安装:


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

2. 下载opencv源码及编译安装

git clone git://github.com/opencv/opencv.git

然后进入opencv目录,在该目录下会有一个CMakeLists.txt,然后在该目录下打开命令行终端,输入

cmake .

使用cmake来检测编译环境以及生成makefile以及其他project信息,在使用cmake过程可以设置一些参数。

然后执行

make

sudo make install

在第2步的过程中,可以在opencv的目录下另建一个文件夹,用于存放编译的结果,如下操作:

mkdir release  
cd release  
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..   //注意CMakeList.txt在上一层文件夹
然后进行make编译和install,值得注意的是,这里指定了编译的目录/usr/local,在这个目录下的include和lib文件夹下分别是opencv的头文件和库文件,在配置集成开发环境的时候会用到。

3. 环境配置

可编辑文本配置部分:/etc/ld.so.conf.d/ 添加 opencv.conf 文件,记录库安装位置;更新配置

$ cd /etc/ld.so.conf.d
$ sudo vi opencv.config
 // insert "/usr/local/lib"    :q
$ sudo ldconfig   

在这之后,要说明两点的就是,PKG_CONFIG_PATH 环境变量的配置,有两种方法:

其一是在/etc/bash.bashrc 中配置PKG_CONFIG_PATH 环境变量:

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

$ source bash.bashrc  //使环境变量生效

其二是在 /etc/profile 中添加

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

(貌似,在第3步的环境配置过程并不需要,只要 make install 就会在/usr/local/lib/pkgconfig下面产生opencv.pr的包含、链接配置)。
检查包含、链接配置是否正确:

$ pkg-config opencv --cflags --libs
  $ -I/usr/local/include/opencv -I/usr/local/include  /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so     /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgcodecs.so /usr/local/lib/libopencv_imgproc.so /usr/local/l    ib/libopencv_ml.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_shape.so /usr/local/lib/libopencv_stitch    ing.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videoio.so /usr/local/l    ib/libopencv_videostab.so

4. 测试

opencv目录下找到 samples/c/build_all.sh,运行该文件

$ ./build_all.sh

此步若编译不成功,则把第3步省略的环境配置过程加上。




以下是关于qtcreator集成开发环境配置opencv并进行测试过程:

1. 首先是qtcreator的安装:

$ sudo apt-get install qtcreator

2. 打开qtcreator,在工具->选项下进行设置,主要是设置Qt的版本,这个会自动检测,貌似Ubuntu本身已安装Qt,如下进行配置,在此过程可能需要安装一下GCC或g++,它们在Ubuntu 16.04LTS版本貌似默认安装的:


ubuntu下安装opencv及qtcreator集成开发环境配置

此后可以建立工程了:


ubuntu下安装opencv及qtcreator集成开发环境配置


然后需要配置一个与工程同名的pro文件,如打开untitled03.pro文件,加入如下内容:

NCLUDEPATH += /usr/local/include/opencv \
               /usr/local/include/opencv2 \
               /usr/local/include
#LIBS += /usr/local/lib/libopencv_video.so  \
#  /usr/local/lib/libopencv_ts.a \
 # /usr/local/lib/libopencv_objdetect.so \
 # /usr/local/lib/libopencv_ml.so  \
  #/usr/local/lib/libopencv_legacy.so \
  #/usr/local/lib/libopencv_core.so \
  #/usr/local/lib/libopencv_features2d.so  \
  #/usr/local/lib/libopencv_imgproc.so \
  #/usr/local/lib/libopencv_highgui.so \
  #/usr/local/lib/libopencv_gpu.so \
  #/usr/local/lib/libopencv_flann.so   \
  #/usr/local/lib/libopencv_contrib.so \
  #/usr/local/lib/libopencv_calib3d.so

LIBS += -lopencv_core\
-lopencv_imgproc\
-lopencv_highgui\
-lopencv_ml\
-lopencv_video\
-lopencv_features2d\
-lopencv_calib3d\
-lopencv_objdetect\
-lopencv_contrib\
-lopencv_legacy\
-lopencv_flann

在上述中,LIBS注释部分与非注释部分的效果一样。

opencv测试代码:

#include <stdio.h>
#include<highgui.h>
using namespace cv;
int main( )
{

  Mat image;
  image = imread("lena.bmp");
  if ( !image.data )
  {
    printf("No image data \n");
    return -1;
  }
  namedWindow("Display Image", WINDOW_AUTOSIZE );
  imshow("Display Image", image);
  waitKey(0);
  return 0;
}

上述代码在执行的时候,会出现无法显示图片的问题,是图片读入失败的问题,此处也是一个值得注意的地方,需把要读入的图片放入到如下命名规则下的文件夹内:

ubuntu下安装opencv及qtcreator集成开发环境配置

此后运行的时候便能显示图片了,以下是运行结果:


ubuntu下安装opencv及qtcreator集成开发环境配置


至此,ubuntu下安装opencv及qtcreator集成开发环境配置过程结束。






















参考资料:1. http://blog.csdn.net/surgewong/article/details/39078251

                  2. http://www.cnblogs.com/lyutian/p/4425956.html

                  3. http://blog.csdn.net/hw5226349/article/details/38233671

                  4. http://blog.csdn.net/niuwei22007/article/details/50448101