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.hqwc.cn/news/195605.html

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

相关文章

基于java web个人财务管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

概念解析 | 网络安全数字孪生(Digital Twin of Cyber Security, DTCS)技术

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:网络安全数字孪生。 概念解析 | 网络安全的“数字镜像” —— 网络安全数字孪生 1. 背景介绍 随着数字化转型进程的深入推进,网络空间安全问题日益凸显。当前的网络安全防护面…

影刀sqlite的插入方法

影刀sqlite的插入方法 变量外面不用加‘’

常见树种(贵州省):002杉类

摘要&#xff1a;本专栏树种介绍图片来源于PPBC中国植物图像库&#xff08;下附网址&#xff09;&#xff0c;本文整理仅做交流学习使用&#xff0c;同时便于查找&#xff0c;如有侵权请联系删除。 图片网址&#xff1a;PPBC中国植物图像库——最大的植物分类图片库 一、杉木 …

「项目阅读系列」go-gin-example star 6.5k!(1)

文章目录 准备工作适宜人群项目信息 项目结构代码阅读主要模块代码主函数模块router 路由模块auth 授权模块数据库 修改文章请求分析其他依赖 总结 准备工作 适宜人群 初学 go 语法&#xff0c;希望了解 go 项目的构建过程和方式。 项目信息 go-gin-example 项目是使用 gin…

integrin + Receptor ; platelet ; Ig-CAM

platelet HPA ; integrin ; Cell adhesion in cancer: Beyond the migration of single cells

ROS参数服务器(Param):通信模型、Hello World与拓展

参数服务器在ROS中主要用于实现不同节点之间的数据共享。 参数服务器相当于是独立于所有节点的一个公共容器&#xff0c;可以将数据存储在该容器中&#xff0c;被不同的节点调用&#xff0c;当然不同的节点也可以往其中存储数据。 使用场景一般存储一些机器人的固有参数&…

大反转!OpenAI董事会辞职,求奥特曼重返OpenAI?「奥特曼24小时流放」大揭秘...

大家好&#xff0c;我是二狗。 想必大家昨天都被Sam Altman被董事会解雇的事情刷屏了。 然而才仅仅过去一天&#xff0c;OpenAI 董事会就反悔了&#xff01;正和Sam Altman 商量让他重返CEO职位。 这一反转和Altman被炒鱿鱼一样突然&#xff0c;凄凄惨惨真真假假真真&#x…

通过汇编理解cortex-m3:第0章

第0章&#xff1a;准备工作 基本想法&#xff1a;利用汇编和gdb调试&#xff0c;来学习cortex-m3汇编指令&#xff0c;以及一些寄存器的功能。 软件和硬件&#xff1a; 硬件&#xff1a;韦东山瑞士军刀中的最小核心板&#xff08;STM32F103C8T6&#xff09; STLINK-V2&#…

Linux线程编程

Linux线程编程初步 一些历史背景 Linux间接起源于Unix&#xff0c;而Linux诞生时并不存在 "线程"的概念。在20世纪90年代线程才流行起来&#xff0c;POSIX Thread标准于 1995年确立。Unix中引入 Thread 之后&#xff0c;大量函数被重写&#xff0c;信号机制也变得复…

Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档

Mybatis-Plus《学习笔记 22版尚硅谷 》 一、MyBatis-Plus1.简介2.特性3.支持数据库4.框架结构5.官方地址 二、入门案例1.开发环境2.建库建表3.创建工程4.配置编码5.测试查询 三、增删改查1.BaseMapper<T>2.调用Mapper层实现CRUD2.1 插入2.2 删除a、根据ID删除数据b、根据…

OpenAI 董事会与 Sam Altman 讨论重返 CEO 岗位事宜

The Verge 援引多位知情人士消息称&#xff0c;OpenAI 董事会正在与 Sam Altman 讨论他重新担任首席执行官的可能性。 有一位知情人士表示&#xff0c;Altman 对于回归公司一事的态度暧昧&#xff0c;尤其是在他没有任何提前通知的情况下被解雇后。他希望对公司的治理模式进行重…