[C++] 详细教程 – opencv4.8.0安装和验证测试 (Windows + Linux)
如何安装C++版本的OpenCV
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了许多常用的图像处理和计算机视觉算法。本文将介绍如何在Linux(Ubuntu)和Windows系统下安装C++版本的OpenCV,并提供验证测试的方法。
一、OpenCV简介
OpenCV是一个跨平台的计算机视觉库,它可以用于开发实时的图像处理和计算机视觉应用。OpenCV的主要功能包括:图像处理、特征检测、物体识别、人脸识别等。OpenCV支持多种编程语言,如C++、Python、Java等。
OpenCV – Open Computer Vision Library
Get Started – OpenCV
二、Linux(Ubuntu)下安装opencv
更新系统软件包
在安装OpenCV之前,首先需要更新系统的软件包列表。在终端中输入以下命令:
sudo apt-get update
安装CMake
sudo apt install -y cmake
安装gcc和g++
sudo apt install -y build-essential
方式1:通过apt直接安装(Ubuntu20.4+opencv4.2.0)
查看当前Ubuntu系统版本和对应的opencv版本
sudo uname -a sudo apt-cache madison libopencv-dev
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/60/7f0c3f3742814848b4f5da51425cdc41.png)
安装opencv4.2.0
sudo apt install -y libopencv-dev
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/cd/a06d70bf890c41afba97581e830c5046.png)
安装成功,下面是安装的相关路径:
include目录: /usr/include/opencv4/
lib目录:/usr/lib/x86_64-linux-gnu/
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/fa/5c5ae71ac4ce4d75ba527e9b727c1b80.png)
其中“*.a”的文件为库文件,“*.so”文件为动态连接库。
bin目录文件:/usr/bin
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/06/bc9fdfef48d0437b925ac6f572921419.png)
这种安装方式会自动安装opencv依赖的第三方库,但是无法安装比较新的版本,比如4.8.0
sudo apt install -y libopencv-dev=4.8.0
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/b4/b2e85353d68d4267bc21d9ad5c524335.png)
验证安装是否成功
最简单的方式是:
whereis opencv_version opencv_version
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/6f/963be712f992406a8371ffd66cace300.png)
或者
安装完成后,可以通过编写一个简单的程序来验证OpenCV是否安装成功。创建一个名为test_opencv.cpp的C++文件,内容如下:
#include
#include
int main() {
std::cout << "OpenCV version: " << CV_VERSION << std::endl;
return 0;
}
在终端中运行这个程序:
g++ test_opencv.cpp -o test_opencv `pkg-config --cflags --libs opencv4` ./test_opencv
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/bf/ae9ea8dae4404b31ae81fb07ba791b0f.png)
方式2:从源代码进行安装(ubuntu20.4+opencv 4.8.0)
OpenCV: Installation in Linux
安装相关依赖
sudo apt install -y cmake g++ wget unzip
下载opencv4.8.0的源代码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.8.0.zip
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/ad/cb8c524bb73a4c09809fce041170e643.png)
解压下载回来的源代码
unzip opencv.zip
创建并进入构建目录
mkdir -p build && cd build
配置opencv
设置安装目录为用户目录的 opencv4.8.0_install子目录。
cmake ../opencv-4.8.0 -DCMAKE_INSTALL_PREFIX=~/opencv4.8.0_install
构建opencv
cmake --build .
构建完成之后检查构建结果
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/6c/4ecb2016c3904d3197df2d1b7b61848f.png)
安装opencv到用户级别(可选)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/c0/acb6edca0e184cb0a59baaace59ea6fd.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/b7/87328f9e3941465a83a04c01c73d34d0.png)
备注:如果整个过程没有报错了,说明没有安装成功。
安装opencv到操作系统级别(可选,不建议)
sudo make install
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/2c/ad976428ff8c42479198a76518bf804a.png)
注意:这个默认会在操作系统级别更新opencv的版本,一般情况下,我们采用CMake来进行项目构建,通过CMake项目来设置对新构建的opencv版本依赖关系,这样方便我们维护项目之间的opencv版本相互独立。
验证安装是否成功
直接运行构建出来的bin文件:
![]()
或者通过CMake项目+CPP代码来进行测试:
在用户目录下创建“cmake_opencv_demo”,在该目录下创建“CMakeLists.txt”:
cmake_minimum_required(VERSION 3.15)
project(opencv_demo LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(OpenCV_DIR ~/build/)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
add_executable(opencv_demo main.cpp)
target_include_directories(opencv_demo PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(opencv_demo ${OpenCV_LIBS})
和 “main.cpp”:
#include
#include
int main() {
std::cout << "OpenCV version: " << CV_VERSION << std::endl;
return 0;
}
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/74/48dcee699ddf43918f4634cd24d7af46.png)
进入“cmake_opencv_demo”,通过“cmake -S . -B build”构建c++项目:![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/e2/e6381b1b90b44593916820e5c6133fbe.png)
通过“cmake –build build”目录生成可执行文件:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/2c/14a2749613e6412894e79ea3ca84b48c.png)
运行可执行文件:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/c4/479de03528c3458790e250ce48d1c09b.png)
三、Windows系统安装OpenCV
方式1:直接下载windows安装包
进入Release OpenCV 4.8.0 · opencv/opencv · GitHub
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/5c/eaaf0e5ee9f54c97b2e574f9e732da4f.png)
下载完,直接解压到的“D:\opencv\opencv4.8.0”即可:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/17/4c5d9e9f1c724ec8bfc1bc2cbda686f2.png)
sources: 为源代码目录。
build:基于vs 2019构建的版本。
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/fa/9a49d006dd094341a6a7e97573f0b91e.png)
include:包含相关头文件。
x64:使用vs 2019 构建的x64的Debug和Release版本。
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/89/d8cf5a16e1f1486db2b1e06e7a88683c.png)
bin:windows下相关exe工具,以及包含所有模块的动态库(dll), 带’d’为Debug版本。
lib:包含所有模块的库文件, 带’d’为Debug版本。![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/2f/edd6449dc4414c3aa300151bdf9efc65.png)
方式2:从源代码构建(vs 2022)
安装CMake,可以参考
[CMake] 基础教程 – CMake安装和验证测试(Windows)
使用“cmake-gui”进行项目配置
源代码目录设置“D:/opencv/opencv4.8.0/sources”,构建目录设置为“D:/opencv/opencv4.8.0/sources/build”:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/32/41ec79c72a9949d5ba065155ef41fca6.png)
点击“Configure”,点击“Yes”创建构建目录。
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/03/915397db26624f2dbfb02e098842474a.png)
我本地安装的是VS 2022,这里我选择 Visual Studio 17 2022。
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/b0/e4c7a944ac8d4cfcb7665c919a08b912.png)
点击“Finish”等待配置完成:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/b4/dce3c1dddab34d6181496e075ac00b64.png)
配置完成,你将能看到构建opencv能使用的CMake选项。
这里还可以看到默认情况下,库文件和动态库的安目录:![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/ec/57b3e96753434471a9e071c1828d2d06.png)
默认情况下,opencv会构建动态连接库,如果你想构建静态连接库(库会很大,不推荐),你可以选中“Advanced”,然后修改“BUILD_SHARED_LIBS”为不选中,即可。
下面是opencv构建的常用选项的说明:
以下是OpenCV CMake-GUI中可能显示的一些选项及其含义: CMAKE_INSTALL_PREFIX:指定安装路径。 WITH_TBB:是否启用Intel Threading Building Blocks(TBB)库。 WITH_CUBLAS:是否启用NVIDIA CUDA BLAS库。 WITH_V4L:是否启用Video for Linux 2(V4L)API。 WITH_QT:是否启用Qt库。 WITH_OPENGL:是否启用OpenGL支持。 WITH_GSTREAMER:是否启用GStreamer库。 WITH_FFMPEG:是否启用FFmpeg库。 WITH_OPENMP:是否启用OpenMP并行计算支持。 WITH_CUDA:是否启用CUDA支持。 WITH_CUDNN:是否启用NVIDIA cuDNN库。 WITH_LIBV4L:是否启用libv4l2库。 WITH_LIBGSTREAMER:是否启用libgstreamer库。 WITH_LIBAV:是否启用libav库。 WITH_LIBJPEG:是否启用libjpeg库。 WITH_LIBPNG:是否启用libpng库。 WITH_LIBWEBP:是否启用libwebp库。 WITH_LIBTIFF:是否启用libtiff库。 WITH_ZLIB:是否启用zlib库。 WITH_JPEG:是否启用JPEG压缩算法。 WITH_PNG:是否启用PNG压缩算法。 WITH_WEBP:是否启用WebP压缩算法。 WITH_TIFF:是否启用TIFF图像格式。 WITH_ZLIB:是否启用ZLIB压缩算法。 BUILD_EXAMPLES:是否构建示例程序。 BUILD_TESTS:是否构建测试程序。 ENABLE_FAST_MATH:是否启用快速数学库。 BUILD_opencv_python2:是否构建Python 2绑定的OpenCV模块。 BUILD_opencv_python3:是否构建Python 3绑定的OpenCV模块。 BUILD_opencv_java:是否构建Java绑定的OpenCV模块。 BUILD_opencv_persistence:是否构建OpenCV持久性模块。 BUILD_opencv_world:是否构建OpenCV世界模块,该模块包含所有可用的OpenCV功能。 BUILD_opencv_dnn:是否构建OpenCV深度神经网络模块。 BUILD_opencv_videoio:是否构建OpenCV视频输入/输出模块。 BUILD_opencv_imgproc:是否构建OpenCV图像处理模块。 BUILD_opencv_highgui:是否构建OpenCV图形用户界面模块。 BUILD_opencv_ml:是否构建OpenCV机器学习模块。 BUILD_opencv_objdetect:是否构建OpenCV目标检测模块。 BUILD_opencv_photo:是否构建OpenCV照片处理模块。 BUILD_opencv_shape:是否构建OpenCV形状分析模块。
这里选中“BUILD_opencv_world”(这样可以类似官方提供的安装包把所有的模块打包到一个lib和dll中),其他的保持默认值,即可:
点击“Generate”生成opencv vs 2022的解决方案:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/6c/93de41739ddd458eb545c53eaa13b55f.png)
生成完成,点击“Open Project”打开open cv vs 解决方案:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/0a/0b7f9c8efe0648969ec34967ebfa04f1.png)
通过VS 2022构建open cv动态链接库
通过“生成->批生成..”打开批生成界面,选中“INSTALL” “Debug|x64”和“Release|x64”,点击“生成”进行库构建和安装:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/90/2476f98ea7cd48b4975c1515cef19132.png)
整个构建过程需要花费几十分钟,请耐心等候:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/31/1efea51bcfc4433ab50ebf94f90386b9.png)
构建完成,没有报任何错误,还不错,总共花了21分钟。
进入“D:\opencv\opencv4.8.0\sources\build\install”安装目录:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/94/0888416f61b0473e9ed9f6ad028d7f3e.png)
include:头文件所在目录。
x64:vs 2022生成lib和bin目录。
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/aa/1d2ab1bbe3fb48e797fd97e4804697c8.png)
操作系统环境变量设置
把“D:\opencv\opencv4.8.0\sources\build\install\x64\vc17\bin”, 添加到系统环境变量Path中,否则会提示opencv相关dll无法找到。
如果不想设置环境变量,也可以直接把dll复制到测试代码的运行目录。
通过VS进行验证测试
通过VS 2022创建一个VC++的空项目:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/e4/802b9977f0384441a79755bfa3b0ce31.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/4c/677c2e156444492785c7ba1862424bd8.png)
配置vc++项目属性,添加opencv包含目录和库目录:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/11/4f13e031eb1343b59d0be57702070bd5.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/16/64023d9da4d645a48f515153d381e1f4.png)
添加opencv bin路径到系统环境变量“Path”:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/0e/01c2e04d61844b75b354b3cba1930f09.png)
添加main.cpp文件:
#include
#include
int main() {
std::cout << "OpenCV version: " << CV_VERSION << std::endl;
return 0;
}
运行main.cpp:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/b0/ebad8cbeb8c14448a008f7355fdaa8b0.png)
通过CMake进行验证测试
新建“D:\DemoSource\CMakeOpenCvDemo”目录,然后
创建文件“CMakeLists.txt”文件:
cmake_minimum_required(VERSION 3.15)
project(opencv_demo LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(OpenCV_DIR D:/opencv/opencv4.8.0/sources/build/install)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
add_executable(opencv_demo main.cpp)
target_include_directories(opencv_demo PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(opencv_demo ${OpenCV_LIBS})
创建“main.cpp”文件:
#include
#include
int main() {
std::cout << "OpenCV version: " << CV_VERSION << std::endl;
return 0;
}
创建“build”目录来存放出来的项目
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/8c/82c4c823ab3e45f1b3fcfc5142d44f56.png)
通过命令行窗口进入“D:\DemoSource\CMakeOpenCvDemo”,通过“cmake -S . -B build”进行项目构建:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/cc/d3980d1b60f34366959e3ae47cc9367e.png)
通过“cmake –build build”生成可执行文件:
运行可执行文件“opencv_demo.exe”:
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/72/1b06aaf9b1ed4d61a8a449419003b65a.png)
四、总结
本文通过图文详细介绍如何在windows和linux(Ubuntu)下安装opencv4.8.0, 并通过cmake项目或者vc++项目验证是否安装成功。
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a79320a7e2.html

![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/73/adf1a5ad59804ae4bc285e3f5f012dc6.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/15/37625a48280a4cd0ae638323b02d2461.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/5e/42bbabe299f04b68910295e40af4459e.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/56/01208c8f4b7b41cbba528de937ebeee3.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/7b/f6b1b40352754ec394e7f52a3e9a40db.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/0f/51a0e52a7b4f4f149e5240c125e77674.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/f9/9464ba05835844eb8c564c92cbffaceb.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/4e/43ff7e567071445bbbfd58a4ee1fdddb.png)
![[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)](/img/5f/31e8b594ee364a2498de103ed646a70f.png)