1. 源码
https://github.com/opencv/opencv
2. 安装依赖
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 libtiff5-dev libdc1394-22-dev # 处理图像所需的包 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包 sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能 sudo apt-get install ffmpeg
若报错:
XXX@XXX:~/Files/opencv-3.1.0$ sudo apt-get install libjasper-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libjasper-dev
执行:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
3. 编译opencv
cd opencv-3.2.0
mkdir build
cd build
//不编译contrib 用该条cmake
cmake -D CMAKE_BUILD_TYPE=Release OPENCV_ENABLE_NONFREE=ON -DENABLE_PRECOMPILED_HEADERS=OFF -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/ ..
//编译contrib 用该条cmake
cmake -D CMAKE_BUILD_TYPE=Release OPENCV_ENABLE_NONFREE=ON -DENABLE_PRECOMPILED_HEADERS=OFF -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=/home/pp/Downloads/software/opencv_contrib-3.2.0/modules -D CMAKE_INSTALL_PREFIX=/usr/local/ ..
make
sudo make install
注意:如果用cmake-gui的话,同样设置5个编译项:
1)CMAKE_BUILD_TYPE=Release OPENCV_ENABLE_NONFREE=ON
2)DENABLE_PRECOMPILED_HEADERS=OFF
3)OPENCV_GENERATE_PKGCONFIG=YES
4)和扩展模块地址
OPENCV_EXTRA_MODULES_PATH=/home/pp/Downloads/software/opencv_contrib-3.2.0/modules
5)CMAKE_INSTALL_PREFIX=/usr/local/opencv ..
4. 配置环境
设置opencv环境变量
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加如下内容:
/usr/local/lib
接下来:
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
在zsh 或者bashrc中添加
sudo gedit /etc/bash.bashrc
文末添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
5. 验证环境
$pkg-config --cflags opencv
输出的是编译时需要的头文件路径:-I /usr/local/opencv/include/opencv -I /usr/local/opencv/include
$pkg-config --libs opencv
输出的是编译时需要的链接库:/usr/local/opencv/lib/libopencv_calib3d.so /usr/local/opencv/lib/libopencv_core.so
6. 测试opencv
//检查opencv 版本
pkg-config opencv --modversion
mkdir opencv-test
cd opencv-test
gedit DisplayImage.cpp
文件内容:
#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;
}
创建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} )
cmake .
make
执行
此时opencv-test文件夹中已经产生了可执行文件DisplayImage,随便从网上下载一张图片放在opencv-test文件夹下,此处下载了opencv.jpg,然后运行
./DisplayImage opencv.jpg
可以正常显示图片表面安装正常
7.可能报错,3.4.15 安装遇到的问题:
7.1 ippicv 下载问题:
可以在github手动下载,然后
“/opencv3.4.13/3rdparty/ippicv/ippicv.cmake”注释掉第 16 行,添加一行: bash中好哦内 set(OPENCV_ICV_NAME "file:///home/自己的用户名/下。
7.2 缺少boostdesc等文件
缺少文件 将这些文件下载然后放置到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。 当然,这些文件的下载路径可以在 cmake//日志中查看,直接复制其下载地址到网页可以看该到文件的源码,直接拷贝源码并生成同名文件然后放置到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。 或者从百度网盘中下载,然后解压并将这些文件放置到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。 百度云链接:https://pan.baidu.com/s/1I4MhbkhP0Au6na2QZdjpGg 提取码:a2c1
参考连接:
【OpenCV3】Ubuntu16.04/18.04下安装最新版OpenCV3.4.13
源码编译opencv卡在IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz解决办法
ubuntu下安装opencv——以ubuntu16.04,opencv4.1.0为例