来自 社区网友 团粉 的热心投稿
编译环境:ubuntu16.04 LTS Opencv版本:opencv4.0.1+opencv4.0.1 contribute
https://github.com/opencv/opencv/releases/tag/4.0.1 https://github.com/opencv/opencv_contrib/releases/tag/4.0.1
使用 ubuntu 原生源下载速度,可替换为国内源,提升下载速度
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo gedit /etc/apt/sources.list
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties deb http://archive.canonical.com/ubuntu xenial partner deb-src http://archive.canonical.com/ubuntu xenial partner deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
以上内容仅支持 ubuntu16 ,其他ubuntu版本可自行百度
命令行输入 sudo apt-get update 进行更新
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
sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen pylint libvtk6-dev
mkdir opencv4 cd opencv4
.tar.gz 结尾的压缩包使用 tar 工具进行解压;.zip 结尾的压缩包使用unzip工具进行解压
tar -zxvf xxxx.tar.gz unzip xxx.zip
解压完成后查看该目录下的文件
cd opencv-4.0.1 mkdir build cd build
在命令行中输入以下内容:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH= /home/cht/opencv4/opencv_contrib-4.0.1/modules -D OPENCV_EXAMPLES=ON ..
CMAKE_INSTALL_PREFIX:该选项为opencv安装的目录,可按实际目录进行修改,一般放在/usr/local目录下 OPENCV_GENERATE_PKGCONFIG:打开 pkg-config OPENCV_EXTRA_MODULES_PATH:该选选项为opencv_contrib模块下module文件夹,按实际目录进行修改,若不编译opencv_contrib模块,该选项可以省略 .. :表示CMakeList.txt在上级目录,命令最后的 .. 不能够省略,否则会出现找不到CMakeList.txt
等待 cmake 完成......
cmake 执行过程需要下载一些压缩包,可能由于网络原因下载不下来,导致出错,这时可以删除 build 文件夹下的内容,重新执行 cmake 命令
等待编译完成...
在命令行中输入 gedit ~/.bashrc 打开 ~/.bashrc 文件 在 ~/.bashrc 文件中添加下面一行内容
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
输入以下内容
source ~/.bashrc sudo ldconfig
pkg-config --libs --cflags opencv4
/opencv-4.0.1/samples/cpp/example_cmake
cmake . make ./opencv_example
运行结果:
mkdir opencv_test cd opencv_test
gedit opencv_test.cpp
在 opencv_test.cpp 中 输入以下内容
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main(){
Mat frame=imread("1.jpeg");
if(frame.empty())
{
cout<<" frame is empty"<<endl;
return -1;
}
imshow("input",frame);
waitKey(0);
return 0;
}
gedit CMakeLists.txt
在CMakeLists.txt 中输入以下内容
cmake_minimum_required(VERSION 3.1)
# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
project(opencv_test)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV library status:")
message(STATUS " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
add_executable(opencv_test opencv_test.cpp)
target_link_libraries(opencv_test ${OpenCV_LIBS})
mkdir build
cd build cmake .. make
在 build 文件夹中存放一张名为 1.jpeg 的图片进行测试
ls ./opencv_test
运行结果: