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-lena cd ~/opencv-lena gedit 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-lena cmake . 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