ubuntu12.04下安装opencv库的步骤及出现的问题

来源:互联网 发布:新三板数据 编辑:程序博客网 时间:2024/06/05 09:15

1.  安装必要的软件 

安装gcc与g++,  git

使用sudo apt-get install命令安装以下软件:

 build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev  

2.  下载OpenCV,我的OpenCV是在http://opencv.org/上下载的,选择opencv  for  linux and mac版本,右键复制链接,在你ubuntu下的目录中使用wget命令下载。

  wget https://github.com/Itseez/opencv/archive/2.4.13.zip

3.  解压到任意目录 进入到压缩包存放的目录 unzip 2.4.13.zip

进入解压后的文件夹,cd opencv-2.4.13

新建release目录,mkdir release 

 cd release  

4.  cmake编译OpenCV源码,所有的lib文件都会被安装到/usr/local目录下 

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..  

在这里可能会有一个warning,提示camke的版本有问题,暂且不管。

5.  安装。

 make 

sudo make install

目前为止已安装完,下面配置opencv。

6.然后是配置变量

sudo nano /etc/ld.so.conf.d/opencv.conf
这个文件可能不存在或为空,没关系。
最后一行增添 /usr/local/lib
然后是跟改变量sudo nano /etc/bash.bashrc也是在最后一行添加 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
7.重启ubuntu ,reboot
8.更新环境变量: export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/*/ 
9.测试opencv

1) 创建工作目录

mkdir ~/opencv-lenacd ~/opencv-lenagedit DisplayImage.cpp

2) 编辑如下代码

#include <stdio.h>#include <opencv2/opencv.hpp>using namespace cv;int main(int argc, char** argv ){  if ( argc != 2 )  {    printf("usage: DisplayImage.out <Image_Path>\n");    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;}

3) 创建CMake编译文件

gedit 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} )

4) 编译

cd ~/opencv-lenacmake .make

5) 执行

此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行

./DisplayImage lena.jpg

6) 结果




到这里,已经配置成功!

容易出现的问题:编译程序后出现错误提示

 Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/aborn/software/OpenCV-2.4.1/modules/highgui/src/window.cpp, line 598
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/aborn/software/OpenCV-2.4.1/modules/highgui/src/window.cpp:598: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

错误原因:

简单的解释就是你的GTK+2.x要先于OpenCV安装,所以它给的解决方法是You should remove the current installation of opencv from your system; rebuild your opencv lib after installing gtk dev lib in the correct path; and reinstall the compiled opencv lib. 


我按照这个方法,又重新用cmake-gui make sudo make install 重新安装了一遍,最后成功。


移除opencv的方法:方法1:手工删除:sudo find / -name "*opencv*" -exec rm -i {} \;注意分号也要打上。

方法2:make uninstallps:我建议你安装最新版本的opencv

sudo gedit /etc/ld.so.conf.d/opencv.conf

sudo gedit /etc/ld.so.conf.d/opencv.conf

sudo gedit /etc/ld.so.conf.d/opencv.conf




sudo gedit /etc/ld.so.conf.d/opencv.conf




0 0
原创粉丝点击