在ubuntu16.04中安装opencv3.3.1的过程中踩了许多坑。一开始直接安装还挺顺利但运行程序时总是提示libgtk2.0-dev和pkg-config没有安装,在安装这两个包的过程中也不顺利。这里推荐一个安装顺序,避免出问题。
1.配置系统的安装源
推荐一片博客:2017年最新版本apt-get安装源替换 阿里云源。目前国内链接国外的服务器不方便,导致ubuntu更新安装容易出错。所以以后装系统先把安装源配置。
2. 安装libgtk2.0-dev和pkg-config
执行命令
sudo apt-get update
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
3.安装opencv-3.3.1
先下载pence-3.3.1的源码。注意opencv对linux直接提供源码,不会和ios,windows一样显示标志。然后输入命令解压安装。
unzip opencv-3.3.1.zip
cd opencv-3.3.1
mkdir build
cd build
cmake ..
make
make install
写个程序做测试
cpp文件
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
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;
}
imshow( "Display Image", image );
waitKey(0);
return 0;
}
CMakeLists.txt文件
project( main )
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
find_package( OpenCV REQUIRED )
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS} )
target_link_libraries( main ${OpenCV_LIBS} )
执行命令
mkdir build
cmake ..
make
./main /home/sss.jpg
如果能显示窗口就没有问题。
需要准备的基本材料(请先看完整个安装过程再进行下面的操作):
一、到Opecv-Release的Github项目上下载最新的Opencv版本,注意---基于python2.7,可选用 OpenCV2.3/2.4 以及 OpenCV3.X,我们选取版本3.3:
下载地址:https://github.com/opencv/opencv/releases/tag/3.3.0
二、安装GUN GCC编译器,对于Ubuntu16.04版本的Linux操作系统这款编译器是自带的
三、安装Cmake跨平台编译工具(CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档)安装的方法:sudo apt-get install cmake
我已经安装好了,就提示无需更新,无需安装
四、安装python2.7,在ubuntu中一般来说是自带python2.7的,如果没有安装,请参看博客中其他的教程
五、安装numpy,在安装好python之后建议您安装pip,安装完pip之后就可以使用pip来安装各种各样的库了,pip install numpy
我已经安装好了,就提示无需更新,无需安装
六、安装pkg-config指令(注意,这里的安装很重要,例如libgtk2.0-dev软件包涉及到了opencv中的imshow等窗口调用能否使用的问题):
sudo apt-get install pkg-config libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
开始安装Opencv For Python:
1、找到下载的Opencv3.3的目录:
2、执行下面的指令(在执行指令的过程之前,我们可以切换到su超级权限下进行操作):
tar -xzvf opencv-3.3.0.tar.gz cd opencv-3.3.0/ cd .. mkdir my_build_dir cd my_build_dir cmake ../opencv-3.3.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local make # make -j4表示开4个线程来进行编译 make install
解压之后的opencv-3.3.0的目录:
Cmake的过程和结果如下:
建立的my_build_dir经过 cmake ../opencv-3.3.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local之后的结果
在my_build_dir中执行make和make install即可
编写代码:
运行结果:
安装过程之中碰到的问题:
"FATAL: In-source builds are not allowed.
You should create separate directory for build files."
意思就是说不要在源代码内部直接编译程序,以免污染源代码,所以在opencv-2.4.13目录之外建立文件夹my_build_dir,然后在这个目录里面执行cmake。
详细问题参照下面的链接:
https://stackoverflow.com/questions/45518317/in-source-builds-are-not-allowed-in-cmake
Ubuntu下卸载重装Opencv的教程参考:
http://www.cnblogs.com/txg198955/p/5990295.html
注:安装之后可能遇到的问题
简单的意思就是调用了window相关的程序,但是没有安装GTK相关的包,函数function不能实现,需要安装libgtk2.0-dev 和 pkg-config。
如果没有使用到opencv的显示接口的话,基本的opencv的函数是能够使用的,在通过numpy的相关的数学运算包转化一下数据格式就可以使用matlibplot等包显示输出图像了。
如果想解决上述的问题,就一定记得安装libgtk2.0-dev和pkg-config之后在cmake ---》make ---》 make install.Opencv就行了。
所有评论(0)