Opencv2.4
之前安装的是Opencv2.4版本,也在这里做一个总结。
1.下载Opencv源码:http://opencv.org/downloads.html 2.4版本的。这一步也可以用git clone。
2.安装依赖:
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config Python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
3.解压:
unzip opencv-2.4.10.zip
4.进入cmake:
cd opencv-2.4.10
cd cmake
5.cmake编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
所有的lib文件都会被安装到/usr/local目录。
6.编译并安装:
sudo make install
7.测试:
test.cpp文件:
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char* argv[]) {
Mat image;
image = imread(argv[1], 1);
if (argc != 2 || !image.data) {
printf("No image data\n");
return -1;
}
namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", image);
waitKey(0);
return 0;
}
同目录下新建一个文件CMakeLists.txt
内容为:
project(test)
find_package(OpenCV REQUIRED)
add_executable(test test)
target_link_libraries(test ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
编译成可执行文件:
cmake .
make
找张test.jpg图片做测试:
./test test.jpg
图片显示,表示安装成功。
参考:http://blog.csdn.net/csqingchen/article/details/43968925
Opencv3.1
刚开始按照2.4版本的方法安装了3.1版本,很多库都不能用。
查找资料后发现按官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边。但是这里边有很多我们经常要用的算法,比如SIFT,SURF等(在xfeatures2d 模块里边)。官网提供了说明,可以把opencv_contrib扩展模块添加编译到已安装的opencv3.1.0里边,也可以安装的时候直接把扩展模块编译进去一并安装。
1.依赖关系:
- GCC 4.4.x or later
- CMake 2.8.7 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
安装依赖包:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2.下载源码:
a.可以从opencv官网直接下载:http://opencv.org/downloads.html
b.也可以从github上clone:
mkdir opencv-3.1
cd opencv-3.1
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
3.CMake Opencv源码:
建立一个编译目录,build目录,把cmake后的文件都放在里面:
cd ~/opencv
mkdir build
cd build
开始cmake,有几个参数比较重要:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..
其中的 < path to opencv_contrib/modules/ >,更改为 ~/opencv-3.1/opencv_contrib/modules/ 就可以了。
进行这一步的时候,经常在下载protobuf-cpp-3.1.0的时候超时,我下载到了相关文件,却不知道放在哪个文件夹下。后来的解决方法是多试了几次就下载下来了。
4.编译可执行文件:
make -j4
-j4用4个进程编译,可以不用。
UPDATE 2017.9.8:
在cuda上装的时候出现了:
nvcc fatal: unsupported gpu architecture 'compute_60'
这个错误,要返回前一步:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> -D CUDA_GENERATION=Kepler ..
加上这句-D CUDA_GENERATION=Kepler。
参考:http://blog.csdn.net/sysuwuhongpeng/article/details/45485719
5.安装
sudo make install
至此就安装好了。