Ubuntu16.04源码方式安装OpenCV-4.5.4

1. 环境和源码准备

sudo apt update 
sudo apt-get install libcanberra-gtk-module
sudo apt-get install pkg-config
sudo apt install -y cmake g++ wget unzip   
sudo apt-get install build-essential pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

其他相关依赖可参考install-opencv

# 2. INSTALL THE DEPENDENCIES

# Build tools:
sudo apt-get install -y build-essential cmake

# GUI (if you want GTK, change 'qt5-default' to 'libgtkglext1-dev' and remove '-DWITH_QT=ON'):
sudo apt-get install -y qt5-default libvtk6-dev

# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev \
                        libopenexr-dev libgdal-dev

# Video I/O:
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev \
                        libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm \
                        libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev

# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb-dev libeigen3-dev

# Python:
sudo apt-get install -y python-dev  python-tk  pylint  python-numpy  \
                        python3-dev python3-tk pylint3 python3-numpy flake8

# Java:
sudo apt-get install -y ant default-jdk

# Documentation and other:
sudo apt-get install -y doxygen unzip wget

opencv 源码地址 https://git.com/opencv/opencv.git

git下载慢可以使用gitee下载 https://gitee.com/opencv/opencv.git

DownloadADE.Cmake失败时候需要手动 ADE下载:https://gitee.com/opencv/ade.git

2.opencv版本选择

git/gitee下载好 opencv源码后,
进入 opencv目录执行: git tag
然后选择你想要的版本(这里安装 4.5.4版本)执行命令:
git checkout 4.5.4

3.手动设置ADE下载包地址以及MD5(这一步本人在编译opencv源码时出现ADE无法下载卡住的情况的解决办法,实际原因可能是/opencv/modules/gapi/cmake/DownloadADE.cmake文件中的下载地址"https://github.com/opencv/ade/archive/"已经失效。

1.下载ade源码后,参考DownloadADE.cmake中的变量定义,把源码的文件夹重命名,然后压缩并重命名。
我下载的源码压缩包名字ade-release_0.1.zip,解压后名字是ade-release_0.1
将解压后的文件夹参考DownloadADE.cmake中的变量定义,我的DownloadADE.cmake中名字
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ff7156fce54d4c97b3981a1dd0437e70.png

  1. 修改DownloadADE.cmake(这里我没设置也成功了,实际可根据自己环境测试一下)

#set(ade_md5 “b624b995ec9c439cbc2e9e6ee940d3a2”) //comment out
set(ade_md5 “e52f69b89f034adbfba00608949db1ae”) //new MD5 value
这里

我的 ade源码位置 /home/user/opencv4/
"https://github.com/opencv/ade/archive/“替换成"file:///home/user/opencv4/”
在这里插入图片描述

4.opencv源码编译

进入opencv源码 新建 build文件夹 mkdir build ..
进入build 文件夹执行cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local
等待编译完成之后执行make -j4
编译后安装执行sudo make install

5 配置环境变量

1.打开文件 /etc/ld.so.conf,在最后一行加上 /usr/local/lib
执行 ldconfig命令
ldconfig这个程序,位于/sbin下,它的作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新的搜索路径,需要运>行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库
sudo gedit /etc/ld.so.conf
2.修改bash.bashrc
执行 sudo gedit /etc/bash.bashrc 末尾添加PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
执行生效 source /etc/bash.bashrc
检查成功 pkg-config opencv --modversion
在这里插入图片描述第二条命令 如果找不到可以试试

sudo apt-get install libopencv-dev

这一步很有必要,否则后边测试程序找不到opencv
在这里插入图片描述
3.如果没有opencv.pc,那么就手动创建它

cd /usr/local/lib/pkgconfig
touch opencv.pc
sudo gedit opencv.pc

文件内容

prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include
libdir=/usr/local/lib
 
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.4.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

6.测试

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char** argv )
{

  Mat image = imread("test.png");

  namedWindow("test",CV_WINDOW_KEEPRATIO);

  imshow("test", image);

  waitKey(0);

  return 0;
}


编译运行脚本

#!/bin/bash
g++ test.cpp -o test.out $(pkg-config --cflags --libs opencv)
./test.out

或者

g++ test.cpp -o test.out $(pkg-config --cflags --libs opencv)

注解:pkg-config 是前文中已经安装的程序,一个包管理工具,可以用于获得某一个库/模块的所有编译相关的信息,pkg-config --cflags --libs opencv 将opencv包的头文件和库信息传递给编译器。不需要再手动去指定头文件和库路径
g++ test.cpp -o test.out -I /usr/include/opencv2 -l /usr/local/lib/opencv

–libs,查看库信息。

–cflags,查看头文件信息。

pkg-config的信息来自 (1) 系统的/usr/lib下的所有 .pc文件。 (2)
PKG_CONFIG_PATH环境变量所指向的路径下的所有.pc文件。

运行程序

./test.out

在这里插入图片描述
附件有ade源码和测试demo源码

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值