Ubuntu14.04安装Opencv3.4.0
详细操作步骤可参见官网 Installation in Linux
1.下载源码
官网下载 https://opencv.org/releases.html
这里我下载的是opencv3.4.0的版本。
2.安装packages
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
因为第一次接触和安装opencv,怕安装过程有什么闪失,我把上面可选项也全部安装了。
3.安装opencv
先解压源码zip
sudo unzip opencv-3.4.0.zip
进入解压后的文件路径中,创建一个build目录
sudo mkdir build
cd build
这个目录是创建在解压后的文件路径里的,我之前把目录创建在其他位置,cmake的时候一直报错找不到CMakeLists.txt
接下来进行配置
cmake [<some optional parameters>] <path to the OpenCV source directory>
官网给出的指导是
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …
这里的 /usr/local 根据自己的源码路径进行修改,命令的最后面还有两个点,我之前忘记加上,一直报错,找了好久没找出原因
实际操作的时候在 -D 附近有报错,后面发现文档下方有提示…
Note
Use cmake -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=/usr/local … , without spaces after -D if the above example doesn’t work.
cmake后面可跟多个 -D ,用来指定模块的路径的,比如
PYTHON_INCLUDE_DIR = /usr/include/python<version> 指定了python的头文件路径
接下来还是在这个build路径下,make:
make -j7
执行安装命令:
sudo make install
到这里算是安装完了。
但是试运行demo的时候出了点问题。
4.教程里的一个例子
例子查看这里,在工作目录下创建一个img1.cpp文件:
//img.cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main() {
//string filepath = "169.png";
Mat img = imread("169.png", 1);
if (!img.data){
cout << "No image data.." << endl;
}
imshow("Display", img);
waitKey(0);
cout << "Hello world " << endl;
return 0;
}
在同一个目录下创建CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8)
project( img1 )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( img1 DisplayImage.cpp )
target_link_libraries( img1 ${OpenCV_LIBS} )
然后在工作目录下执行
cmake .
这时候报了如下错误:
Could not find a package configuration file provided by “OpenCV” with any of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Add the installation prefix of “OpenCV” to CMAKE_PREFIX_PATH or set
“OpenCV_DIR” to a directory containing one of the above files. If “OpenCV”
provides a separate development package or SDK, be sure it has been
installed.
– Configuring incomplete, errors occurred!
大意就是没有找到FindOpenCV.cmake这个文件,然后尝试去找OpenCVConfig.cmake和opencv-config.cmake,也没有找到。
我自己在系统根目录下也没有找到,不知道是哪里安装出了错误。但是我在opencv3.4.0的build目录下找到OpenCVConfig.cmake,所以对img的CMakeLists.txt做了如下修改:
cmake_minimum_required(VERSION 2.8)
project(img1)
set(OpenCV_DIR /home/rrakes/something/opencv/opencv-3.4.0/build) #新增了这一句
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(img1 img1.cpp)
target_link_libraries(img1 ${OpenCV_LIBS})
再一次进行cmake之前要删除已经生成的CmakeCache.txt和CMakeFiles文件夹
cmake .
make
然后执行
./img1
结果如下:
图片有点大把整个屏幕都霸了…不过也算是输出了 ヾ(≧∇≦*)ゝ