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.测试opencv1) 创建工作目录
mkdir ~/opencv-lenacd ~/opencv-lenagedit DisplayImage.cpp2) 编辑如下代码
#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 .make5) 执行
此时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
- ubuntu12.04下安装opencv库的步骤及出现的问题
- WIN7下硬盘安装ubuntu12.04出现的种种问题及解决方案
- Ubuntu12.04操作系统安装时,出现的问题及解决方案
- ubuntu12.04下安装git出现版本问题的解决
- Linux下安装mysql步骤及可能出现的问题
- opencv在ubuntu12.04下的安装
- SparkR安装出现的步骤及出现的问题
- 【Git】Ubuntu12.04下安装git,SSH及出现的Permission denied解决办法
- Ubuntu 下安装VirtualBox主要步骤及出现的问题的解决方案
- win10下安装opencv及tensorflow的操作步骤
- ubuntu12.04下编译android源代码出现的问题
- ubuntu12.04 下 Python开发环境搭建以及matplotlib库和openCV的安装
- mininet在Ubuntu12.04下的安装及学习
- 虚拟机vMware 安装ubuntu12.04详细步骤及安装后的配置
- Ubuntu12.04安装及Waiting for headers问题的解决
- mac下virtualbox安装ubuntu12.04出现问题
- win7下安装ubuntu12.04时遇到的分区问题
- ubuntu12.04下安装jdk详细步骤
- win10 网络连接 文件夹为空 的解决办法
- 转发代理服务器和反向代理服务器(转)
- 动画 Android:interpolator用法
- !important元素无法提升权重是0的东西,该是0还是0
- 基于groovy语言的DSL编程基础(项目构建)
- ubuntu12.04下安装opencv库的步骤及出现的问题
- 10.9
- 初识别输入输出
- Kinect-Fusion ICP算法构建带法向量点云金字塔
- SpringBoot 1.4升级中遇到的奇葩问题
- 【Linux4.1.12源码分析】二层报文发送之报文GSO分段(IP层)
- 変分学引入
- 软考总结--网络
- Typedef与#define的区别