window上Clion配置C++版本的opencv

window上Clion配置opencv

注意版本一定要对的上,否则可能会出错,亲测

  • widnows 11
  • mingw 8.1.0
  • opencv 4.5.5

mingw8.1下载地址https://sourceforge.net/projects/mingw/
配置环境变量

1699705757867

cmake下载

image-20231119153236220

安装完添加环境变量

image-20231119153557366

来到官网,下载 windows 对应的版本,现在最新的版本是 4.5.

我这里安装4.5.5的

image-20231119153658514

下载完成后解压

image-20231119154333614

image-20231119154342639

opencv 默认只提供了 msvc 编译的版本,在 build 目录下,源码文件在 sources。因此接下来,我们需要使用 mingw 来编译 opencv,首先在 opencv 的解压目录下新建一个文件夹 mingw_build,用来存放编译生成的文件

image-20231119154428067

然后打开 cmake-gui.exe,在 Where is the source code: 选择 opencv 下的 sources文件夹,而 Where to build the binaries: 选择前面创建好的 mingw_build 文件夹

image-20231119154529935

然后点击 Configure,在 Specify the generator for this project 中选择 MinGW Makefiles

image-20231119154635591

image-20231119155510854

Configure完成后,再点击Generate

image-20231119155540819

Generate 完成后,我们进入到 mingw_build 文件夹,打开终端工具,执行命令 mingw32-make.exe 开始编译

image-20231119155710135

编译成功

image-20231119214938949

然后执行安装,mingw32-make.exe install

可能会报错

CMake Error at modules/python3/cmake_install.cmake:49 (file): file cannot create directory: E:/exe/anaconda3/Lib/site-packages/cv2. Maybe need administrative privileges. Call Stack (most recent call first): cmake_install.cmake:158 (include) mingw32-make: *** [Makefile:129: install] Error 1

这是没有权限,这个时候你需要在以管理员身份打开cmd,然后cd到mingw_build文件夹下再执行mingw32-make.exe install

image-20231119215954210

可以看到,相关的文件都被拷贝到了 mingw_build\install 目录下,然后将目录E:\opencv\opencv\mingw_build\install\x64\mingw\bin加入到系统环境变量中,这个就不用我多说了,系统环境变量怎么设置看我这篇文章https://blog.csdn.net/Johnor/article/details/134353311?spm=1001.2014.3001.5502

image-20231119220345897

打开 clion,新建一个项目

打开设置中的工具链

image-20231119220657087

默认情况下,clion 中只能使用 Debug 模式下运行程序,因此,我们来增加 Release 模式。

image-20231119220806175

接下来,修改下 CMakeLists.txt,内容如下

注意设置opencv的目录,这样项目的寻找头文件的根目录就是E:\\opencv\\opencv\\mingw_build\\install

cmake_minimum_required(VERSION 3.21)
project(OpenCVDemo)set(CMAKE_CXX_STANDARD 11)set(OpenCV_DIR "E:\\opencv\\opencv\\mingw_build\\install")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(OpenCVDemo main.cpp)
target_link_libraries(OpenCVDemo ${OpenCV_LIBS})

记得修改完一定要点击,右边的加载CMake更改

记得修改完一定要点击,右边的加载CMake更改

记得修改完一定要点击,右边的加载CMake更改

7fbc51b54538188c928f9ff959df77d

然后就是代码

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;int main() {//std::cout << "当前工作目录: " << std::filesystem::current_path() << std::endl;Mat srcImage = imread("..//images//img.png");if (!srcImage.data) {std::cout << "Image not loaded";return -1;}imshow("image", srcImage);waitKey(0);return 0;
}

注意图像的相对位置,opencv项目的位置是与相关的exe文件同目录的,这个OpenCVDemo.exe才是项目的根目录,至于为什么和python版本的opencv不一样,是因为C++是编译型语言,与python这种解释型语言不同

5d0ff19f6d64c73f0828f903ab7bee9

所以需要使用…退出cmake_build_debug目录,才能找到images下面的img.png

86bada7e67018a0f424a260be0c0afe
运行结果

image-20231119224727407

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/158801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GNU工具链

1. GNU介绍 工具链典型的例子就是GNU工具链。 GNU工具链是由GNU项目产生的各种编程工具的集合&#xff0c;用于开发应用程序与操作系统。 GNU工具链在针对嵌入式系统的Linux内核、BSD及其它软件的开发中起着至关重要的作用。 GNU工具链中的部分工具也被Mac OS X, Microsoft W…

【C++】类和对象一

今天来到了类和对象部分&#xff0c;我们知道C语言是面向过程编程&#xff0c;而C是面向对象编程&#xff0c;那么怎么个具体实现方法呢&#xff1f;简单来说&#xff0c;就是C语言对结构体的定义和对结构体的操作是分开的&#xff0c;这样就显得过程很独立&#xff1b;而C是把…

windows11记事本应用程序无法打开,未响应,崩溃,卡死

windows11记事本应用程序无法打开&#xff0c;未响应&#xff0c;崩溃&#xff0c;卡死 文章目录 问题描述搜索引擎&#xff08;度娘&#xff09;卸载后如何安装问题未解决另一个解决方案&#xff1a;步骤&#xff1a;1.设置 → 语音和区域 → 输入2.选择“高级键盘设置”3.替…

LeetCode - 622. 设计循环队列(C语言,顺序存储结构,配图)

目录 ​编辑定义结构体&#xff1a; 1. MyCircularQueue(k): 构造器&#xff0c;设置队列长度为 k 2. Front: 从队首获取元素。如果队列为空&#xff0c;返回 -1 3. Rear: 获取队尾元素。如果队列为空&#xff0c;返回 -1 4. enQueue(value): 向循环队列插入一个元素。…

基于springboot实现在线外卖平台系统项目【项目源码】

基于springboot实现在线外卖平台管理系统演示 Java技术 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的…

运动耳机哪个牌子好?盘点最值得入手的五款运动耳机

现在&#xff0c;不入耳的运动耳机成了许多运动爱好者的首选&#xff0c;我也不例外&#xff0c;不得不说骨传导耳机跟运动真的很搭&#xff0c;不仅佩戴稳固不掉落&#xff0c;而且防水好&#xff0c;可以说是最值得入手的运动耳机&#xff0c;为了避免大家在选购运动耳机的时…

电脑磁盘怎么设置密码?磁盘加密软件哪个好?

电脑磁盘经常被用于存放各种重要数据&#xff0c;而为了避免数据泄露&#xff0c;我们需要为磁盘设置密码&#xff0c;以防止未授权人员使用磁盘。那么&#xff0c;电脑磁盘怎么设置密码呢&#xff1f;下面我们就一起来了解一下。 如何设置磁盘密码&#xff1f; 想要为磁盘设置…

计算机毕业设计项目选题推荐(免费领源码)java+springboot+mysql社区团购APP 02043

目录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3本课题主要工作 1.4论文结构与章节安排 2 社区团购系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.…

简于外 强于内,联想全新ThinkCentre M90a Pro Gen4以强劲性能开启商

近日&#xff0c;联想发布了最新一代商用台式一体机联想ThinkCentre M90a Pro Gen4。作为联想ThinkCentre M大师系列的旗舰产品&#xff0c;其配备了优质的显示屏&#xff0c;拥有强大的性能和稳定安全的特性&#xff0c;能够满足多样的工作场合&#xff0c;为商用一体机的行业…

Java核心知识点整理大全6-笔记

目录 4.1.4. 线程生命周期(状态) 4.1.4.1. 新建状态&#xff08;NEW&#xff09; 4.1.4.2. 就绪状态&#xff08;RUNNABLE&#xff09;&#xff1a; 4.1.4.3. 运行状态&#xff08;RUNNING&#xff09;&#xff1a; 4.1.4.4. 阻塞状态&#xff08;BLOCKED&#xff09;&#xff…

五、程序员指南:数据平面开发套件

服务质量 (QoS) 框架 本章介绍 DPDK 服务质量 (QoS) 框架。 21.1 带有 QoS 支持的数据包流水线 下图显示了一个具有 QoS 支持的复杂数据包处理流水线的示例 表21.1&#xff1a;带有 QoS 支持的复杂数据包处理流水线 这个流水线可以使用可重用的 DPDK 软件库构建。在这个流…

HarmonyOS ArkTS语言,运行Hello World(一)

一、下载与安装DevEco Studio 在HarmonyOS应用开发学习之前&#xff0c;需要进行一些准备工作&#xff0c;首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 进入DevEco Studio下载官网&#xff0c;单击“立即下载”进入下载页面。 DevEco Studio提供了Windows…

【深度学习】不用Conda在PP飞桨Al Studio三个步骤安装永久PyTorch环境

在 PaddlePaddle AI Studio 中使用 Python 虚拟环境安装 PyTorch 免责声明 在阅读和实践本文提供的内容之前&#xff0c;请注意以下免责声明&#xff1a; 侵权问题: 本文提供的信息仅供学习参考&#xff0c;不用做任何商业用途&#xff0c;如造成侵权&#xff0c;请私信我&am…

OpenAI董事会秒反悔!奥特曼被求重返CEO职位

明敏 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 1天时间&#xff0c;OpenAI董事会大变脸。 最新消息&#xff0c;他们意在让奥特曼重返CEO职位。 多方消息显示&#xff0c;因为“投资人的怒火”&#xff0c;OpenAI董事会才在一天时间里来了个大反转。 微软CEO纳德拉被曝在得…

【nlp】2.8 注意力机制拓展

注意力机制拓展 1 注意力机制原理1.1 注意力机制示意图1.2 Attention计算过程1.3 Attention计算逻辑1.4 有无attention模型对比1.4.1 无attention机制的模型1.4.2 有attention机制的模型1 注意力机制原理 1.1 注意力机制示意图 Attention机制的工作原理并不复杂,我们可以用下…

springBoot整合quartz定时任务

声明 Quartz是一种基于java实现的任务调度框架&#xff0c;可以定时自动的执行你想要执行的任何任务。 官网&#xff1a;quartz官网 利用Quartz的定时任务技术可以应用于许多不同的场景&#xff0c;帮助我们实现定时执行任务、数据清理、缓存刷新、邮件发送、数据备份、系统监…

【Redis篇】简述Java中操作Redis的方法

文章目录 &#x1f384;简述Jedis&#x1f384;Jedis优点&#x1f354;使用Jedis连接Redis⭐进行测试&#x1f388;进行测试 Redis&#xff08;Remote Dictionary Server&#xff09;是一种流行的高性能内存数据库&#xff0c;广泛应用于各种应用程序和系统中。作为Java开发人员…

【giszz笔记】产品设计标准流程【7】

&#xff08;续上回&#xff09; 今天来讨论下产品设计标准流程中&#xff0c;交互设计和视觉设计的内容。 想参考之前文章的&#xff0c;我把链接给到这里。 【giszz笔记】产品设计标准流程【6】-CSDN博客 【giszz笔记】产品设计标准流程【5】-CSDN博客 【giszz笔记】产品…

js双击修改元素内容并提交到后端封装实现

前面发过一个版本了&#xff0c;后来又追加了些功能。重新发一版。新版支持select和radio。 效果图&#xff1a; 右上角带有绿标的&#xff0c;是可以修改的单元格。如果不喜欢显示绿标&#xff0c;可以传递参数时指定不显示&#xff0c;如果想改为其它颜色&#xff0c;也可以…

涉密人员离职怎么做好安全管理?

在信息安全领域&#xff0c;涉密人员的离职安全管理具有极其重要的意义。一旦涉密人员离职&#xff0c;可能会对单位的信息安全造成威胁&#xff0c;因此必须采取有效的措施来确保涉密人员离职后的信息安全。 一、涉密人员离职安全管理的现状 目前&#xff0c;许多单位在涉密人…