Ubuntu20.04安装OpenCV并配置Clion工程
1 OpenCV安装
1.1 二进制安装
Ubuntu20.04支持apt二进制安装
1 2
| sudo apt update sudo apt install libopencv-dev python3-opencv
|
查看版本号
1
| python3 -c "import cv2; print(cv2.__version__)"
|
安装成功返回4.2.0
1.2 源码安装
1.2.1 安装编译环境和依赖
1 2 3 4 5 6
| sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \ libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
|
1.2.2 Clone最新的OpenCV源码
截止2022.02.27,GitHub更新到OpenCV4.5.5
1 2 3
| mkdir ~/opencv_build && cd ~/opencv_build git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git
|
1.2.3 Cmake编译
1.2.3.1 创建临时目录
1 2
| cd ~/opencv_build/opencv mkdir -p build && cd build
|
1.2.3.2 设置编译选项
1 2 3 4 5 6 7
| cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..
|
正常应该出现以下提示
1 2 3
| -- Configuring done -- Generating done -- Build files have been written to: /home/vagrant/opencv_build/opencv/build
|
1.2.3.3 开始Cmake编译
注:j后面的数字为处理器内核数,可以使用nproc
来查询
1.2.4 安装OpenCV
1.2.5 验证安装
C++
1
| pkg-config --modversion opencv4
|
返回4.3.0
Python
1
| python3 -c "import cv2; print(cv2.__version__)"
|
返回4.3.0-dev
2 Clion工程配置
新建工程,本文选择C++11标准
编辑CmakeList.txt
1 2 3 4 5 6 7 8 9
| cmake_minimum_required(VERSION 3.21) project(OpenCV_Test)
set(CMAKE_CXX_STANDARD 11)
add_executable(OpenCV_Test main.cpp)
find_package(OpenCV REQUIRED) target_link_libraries(OpenCV_Test ${OpenCV_LIBS})
|
到运行调试配置中修改工作目录为(或手动输入当前main.cpp所在目录)
在工作目录下放置一个图片命名为test.jpg
编写测试程序
1 2 3 4 5 6 7 8 9 10 11
| #include <iostream> #include<opencv2/opencv.hpp> using namespace cv;
int main() { std::cout << "Hello, World!" << std::endl; Mat image = imread("./test.jpg"); imshow("OpenCV-Test",image); waitKey(0); return 0; }
|
编译运行,若配置无误即可显示出图片。