您的位置:首页 > 运维架构

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

2016-10-09 22:45 253 查看
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-lena
cd ~/opencv-lena
gedit 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-lena
cmake .
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐