一文详解OpenCV环境搭建:Windows使用CLion配置OpenCV开发环境

计算机视觉和图像处理领域OpenCV 是一个不可或缺的工具。其为开发者提供了一系列广泛的算法实用工具,支持多种编程语言,并且可以在多个平台上运行。对于希望在其项目中集成先进视觉功能的开发者来说,掌握如何配置和使用OpenCV是非常重要的。

本文旨在帮助Windows平台上的C++开发者快速上手,在CLion集成开发环境配置并使用OpenCV库。通过遵循本文档中的步骤,读者将学习到如何编译、配置适用于MinGW的OpenCV版本,并最终在CLion中创建一个简单的OpenCV项目

一、下载OpenCV

OpenCV官方下载Windows版本的OpenCV安装包:
https://opencv.org/releases/

下载OpenCV

二、解压OpenCV

双击opencv-4.10.0-windows.exe解压到一个自定义的目录,这里我解压到了D盘目录下。

解压OpenCV
解压中效果如下图所示。

解压OpenCV

解压完成后,可以看到包含两个文件夹,一个是build,一个是sources。

解压OpenCV

  • build文件夹是编译好的OpenCV MSVC版(对应开发工具为VS2022)
  • sources文件夹是opencv的源码

所以,如果我们要使用CLion开发OpenCV,需要使用MinGW工具,自行进行编译。

这里关于MSVC版MinGW版编译包,进行一个简单的介绍说明:

  • MSVC版: OpenCV 文件夹会有 build(已编译好的库)sources(源码)
    使用 MSVC 的话,直接在将D:\Program\opencv\build\x64\vc16配置到路径即可使用;
  • MinGW版:OpenCV 没有为我们编译好 MinGW 版,所以只能用户自行编译。

三、编译OpenCV

编译OpenCV需要用到Mingw编译器Cmake工具,关于这两个工具的下载与安装,这里不进行详细介绍,请大家自行搜索并安装。

下边我们介绍,用Cmake工具Mingw编译器,如何编译opencv:

  1. opencv文件夹下,创建一个新的mingw-build文件夹用于存放编译后的内容。

编译OpenCV
2. 找到本地电脑的cmake安装目录,找到其CMake\bin目录下的cmake-gui.exe

编译OpenCV

上方选择source为opencv下的source文件夹 ;下方选择刚刚建立的mingw bulid文件夹;点击下方的Configure按钮,并选择类型为MinGW Makefiles,后点击Finish

编译OpenCV

第一次编译后,会出现很多红色的这里不用担心。

编译OpenCV

再次点击Configure之后红色就会消失。

编译OpenCV

最后,点击Generate

编译OpenCV

到这里Cmake就可以关掉了。

  1. 下边,我们打开CMD命令行,cd到opencv\mingw-build文件夹, 输入mingw32-make -j16命令。

编译OpenCV
这里的j16是指使用16核加速编译,如果电脑核心多的话可以增加或减少。

  1. 最后执行mingw32-make install命令,将刚刚编译的文件整合到一起。
    install:告诉make工具执行Makefile中名为install的规则。通常情况下,install规则会负责将编译好的二进制文件、库文件、头文件以及其他资源复制到系统的合适位置,以便其他程序能够找到并使用它们。例如,可执行文件可能会被复制到/bin,而头文件可能会被复制到/include

编译OpenCV

  1. 最后,将D:\Program\opencv\mingw-build\bin路径添加到环境变量中。

编译OpenCV

四、创建

打开Clion工具,新建C++项目,编写以下代码:

CMakeCache.txt

# 指定CMake最低版本要求,确保使用了至少3.23版本的CMakecmake_minimum_required(VERSION 3.23)  
# 定义项目名称为CLion_OpenCV_Demo,并设置使用的默认语言(如果需要)。  
project(CLion_OpenCV_Demo)  
# 设置C++编译标准为C++14set(CMAKE_CXX_STANDARD 14)  
  
#OpenCV  
# 设置OpenCV_DIR变量,指向OpenCV构建目录下的bin文件夹路径,  
set(OpenCV_DIR "D:/Program/opencv/mingw-build/bin")  
# 尝试查找系统中安装的OpenCV库。REQUIRED选项表示如果找不到OpenCV,则停止配置过程并抛出错误。  
find_package(OpenCV REQUIRED)  
# 将OpenCV的头文件目录添加到当前项目的编译指令中,使得源代码可以包含OpenCV的头文件。  
include_directories(${OpenCV_INCLUDE_DIRS})  
# 添加链接器搜索路径,即OpenCV库文件所在的目录。  
link_directories(${OpenCV_LIBRARY_DIRS})  
  
# 定义可执行文件名和它的源文件列表。这里只有一份源文件main.cpp。  
add_executable(CLion_OpenCV_Demo main.cpp)  
  
# 链接目标可执行文件与OpenCV库,使得在链接阶段会将指定的OpenCV库链接到最终的可执行文件中。  
target_link_libraries(CLion_OpenCV_Demo ${OpenCV_LIBS})

main.cpp

#include <iostream>  
#include <opencv2/opencv.hpp>  
  
using namespace std;  
using namespace cv;  
  
int main() {  
    // 使用imread函数从文件路径加载图像到Mat对象中  
    Mat img = imread("../android.png");  
    // 检查是否成功加载了图像。如果img为空,则表示加载失败。  
    if (img.empty()) {  
        cout << "Error" << endl;  
        return -1;  
    }  
    // 使用imshow函数创建一个窗口,并在其中显示名为"Lena"的图像。  
    imshow("Lena", img);  
  
    // 等待用户按键事件。没有参数时会无限期等待直到任意键被按下。  
    // 这个调用也防止了显示窗口立即关闭。  
    waitKey();  
    return 0;  
}

运行程序,输出如下UI界面,代表CLion运行OpenCV成功。

运行程序

五、参考

Clion使用OpenCV环境配置
https://www.jianshu.com/p/4f5d372e3927

WIN10+CLion+Opencv配置教程
https://blog.csdn.net/DeepLearningJay/article/details/120214602

### 如何在 CLion配置使用 OpenCV 进行 C++ 开发 #### 安装 OpenCV 库 为了能够在 CLion 中顺利使用 OpenCV,首要条件是确保已经正确安装了 OpenCV 库。对于 macOS 用户来说,可以借助 Homebrew 来简化这一过程;而对于 Windows 用户,则可能需要手动下载并解压预构建的二进制包到指定路径。 #### 修改 `CMakeLists.txt` 文件 创建一个新的 CLion 项目之后,编辑该项目下的 `CMakeLists.txt` 文件来引入必要的 OpenCV 组件。具体操作如下: - 设置环境变量指向本地存储的 OpenCV 构建目录; - 更新模块搜索路径以便找到 OpenCV 提供的相关脚本; - 调用 `find_package()` 函数加载所需的组件列表; - 将发现的头文件夹加入编译选项中; - 明确指出链接哪些特定于应用程序需求的核心库和其他辅助库[^2]。 ```cmake set(OpenCV_DIR "C:\\openCV\\opencv\\mingw-build") # 替换为实际存放位置 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(testOpenCV ${OpenCV_LIBS}) # 更改 'testOpenCV' 至对应目标名称 ``` #### 编写测试程序验证配置有效性 完成以上步骤后,可以通过简单的图像读取显示例子来检验整个流程是否正常工作。这里给出一段基础代码片段用于展示基本功能[^3]。 ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { std::string image_path = "path/to/image"; Mat img = imread(image_path, IMREAD_COLOR); if (img.empty()) { printf("Could not open or find the image\n"); return -1; } namedWindow("Display window", WINDOW_AUTOSIZE); imshow("Display window", img); int k = waitKey(0); // 等待按键事件关闭窗口 destroyAllWindows(); return 0; } ``` 需要注意的是,在 Windows 平台上执行此类应用时,应当留意资源文件相对于可执行文件的位置关系,因为这直接影响到了程序能否正确访问外部数据源[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bjxiaxueliang

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值