CLion 中使用 C++ 版本的 OpenCV

配置环境:

  • Windows 10
  • CLion 2020
  • OpenCV 3.4.1
  • MinGW-w64

1. 下载 CLion 并配置好 MinGW

CLion 下载地址:https://www.jetbrains.com/clion
MinGW 安装包下载地址:链接:https://pan.baidu.com/s/1c00uHbcf_jGeDDrVg99jtA 提取码:at0p

运行 MinGW 安装包并完成安装,之后我们打开 CLion 进行编译器配置:

在这里插入图片描述
在这里插入图片描述
这里我已经配置好了环境了,如果没有配置过,只需要点击上面的 “+”,然后在 Environment 那里选择你MinGW安装的位置,剩下的 C 和 C++ 编译器通常都会自动检测出来的,点击右下角的 Apply 应用,这样我们就配置好 MinGW 编译器了。

2. 配置 OpenCV

配置 openCV 需要先下载源码,通过 Cmake 编译之后才能够使用,这里我将源码和编译好的文件都放出来:
openCV 源码:链接:https://pan.baidu.com/s/1M0UV9ht6UVGRJYtFMUmvaA 提取码:tpqg
编译好的 MinGW 版本的文件:链接:https://pan.baidu.com/s/184CQgR2gLixtVfhHvOeFyQ 提取码:45c1

(1)源码编译
(如果你下载的是我编译好的文件可以直接跳过这一步,跳到(2))
在使用源码编译的时候,我们需要打开cmake-gui,选择下载的源码文件夹,将 source 和 build 目录选择如下:
在这里插入图片描述
需要注意的是,一定要在菜单中往下拉找到 “CPU_DISPATCH” 一栏,把后面选择为空的参数,不然后面编译的时候可能会报错:
在这里插入图片描述
然后点击 ”Configure“,在弹出的对话框中选择编译类型,这里我们下拉选择 - MinGW MakeFiles,然后开始 Configure,等待完成后我们再点击左下角的 Generate 等待完成,完成后目录下应该会多一个 mingw-build 的文件夹:

在这里插入图片描述
进入到这个文件夹中,打开cmd,输入 mingw32-make,然后耐心等待程序完成。
在这里插入图片描述
如果你是下载的我编译好的那个文件的话,解压出来就是这个 mingw-build 的文件夹,并且已经执行过mingw32-make命令了,就不用自己去cmake一次了。

接下来我们只需要在CLion里面配置后就可以进行OpenCV调用了,

(2)CLion 配置

在 CLion 中建立一个新项目,并修改 CMakeLists :
在这里插入图片描述
主要需要添加的是下面几行代码:

set(OpenCV_DIR "C:\\openCV\\opencv\\mingw-build")	# 这里填写你存放的 mingw-build 的文件夹目录
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs)
target_link_libraries(testOpenCV ${OpenCV_LIBS})	# 链接 OpenCV 库,把 testOpenCV改成你自己项目的名字

编写代码测试能否成功调用 openCV 库:

#include "opencv2/opencv.hpp"
#include <iostream>
#include <vector>
using namespace std;
using namespace cv;int main(){VideoCapture capture(0);while(true){Mat frame;capture >> frame;imshow("video", frame);int key = cvWaitKey(10);if (key == 27)break;}
}

运行结果如下图所示:
在这里插入图片描述

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

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

相关文章

C和指针之auto和内存栈和register关键字

1、auto 在C代码中每个函数都有其生命周期(也称作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量。例如: 复制代码代码如下: int chenyu(){ int a = 10; // auto int a = 10; return 0; } 整型变量a在fun函数内声明,其作用域为chenyu函数内…

如何理解 C# 中的 System.Void 类型?

咨询区 ordag我知道方法声明成 void 表示不返回什么东西&#xff0c;但我发现在 C# 中 void 不仅仅是一个关键词&#xff0c;而且还是一个真实的类型。void 是 System.Void 的别名&#xff0c;就像 int 的别名是 System.Int32 一样&#xff0c;但为什么不允许直接使用Void类型呢…

ArrayList 的实现原理

ArrayList 是List接口的可变数组的实现。实现了所有可选列表的操作&#xff0c;并包括null值在内的所有元素。此类还提供了一些方法来操作内部用来存储列表的数组大小。 ArrayList 的是实现&#xff1a; 对于ArrayList而言&#xff0c;他实现List接口、底层使用数组保存所有元…

获得手机的ip

本文转载至 http://blog.csdn.net/showhilllee/article/details/8746114 iosip手机貌似ASI里获取ip地址的链接不可以了。也曾试过whatismyip&#xff0c;在其网站上的截图获取的ip是正确的&#xff0c;单不知道为什么在我这里却是错误的。所以&#xff0c;在这里分享一下获得手…

Idea maven项目不能新建package和class的解决

如图&#xff0c;新建的maven项目不能新建package 这是因为Java是普通的文件夹&#xff0c;要设置为 现在就可以了

C和指针之数组和函数部分总结

函数和数组2个章节部分学习总结 1、之前对函数参数传递指针没有理解到位,以为像传其它的数据一样,只是数据的一份拷贝,然后不修改原始的数据,函数参数如果是传递的指针,传递给函数是指针的一份拷贝,可以通过指针间接访问数据,从而得到修改原始数据,反正不能把指针变量本…

基于文本知识库的强化学习技术——Learning to Win by Reading Manuals in a Monte-Carlo Framework

论文链接&#xff1a;http://people.csail.mit.edu/branavan/papers/acl2011.pdf 文章目录1. 背景介绍2. 将攻略文本引入值函数 Q(s,a)Q(s, a)Q(s,a) 评价2.1 复杂环境下使用传统 Q(s,a)Q(s, a)Q(s,a) 函数的缺陷2.2 设计 Q(s,a,d)Q(s, a, d)Q(s,a,d) 神经网络2.3 模型训练流程…

这是Blazor上传文件的最佳方式吗?

Blazor不得不说真是好东西&#xff0c;极大的提升了开发效率&#xff0c;很多的页面交互功能基本上只需要写很少的代码就能实现了&#xff0c;而且还是无js实现&#xff0c;你也绝对没有想到过&#xff0c;Blazor实现文件上传是有多么简单&#xff01;先说结论&#xff1a;Blaz…

iOS SQLite函数总结

1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例 ); 2.执行任何SQL语句 int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 const char *sql, …

ubuntu 下安装五笔输入法

2019独角兽企业重金招聘Python工程师标准>>> 从两年开始用五笔的吧&#xff0c;自从我学会用五笔之后&#xff0c;基本上就没有用过拼音了&#xff0c;我记忆中使用拼音也就那么几次&#xff0c;好像都是在远程协助别人的时候&#xff0c;用他们电脑上的拼音。然后我…

openstack horizon国际化分析

2019独角兽企业重金招聘Python工程师标准>>> 参考 官网国际化介绍&#xff1a;https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#module-django.conf.urls.i18n Django模板&#xff08;网页多语种支持/国际化&#xff09;&#xff1a; http://blog.…

6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

1. 前言上面我们已经做到了接口以及场景压测&#xff0c;通过控制台输出结果&#xff0c;我们只需要将结果收集整理下来&#xff0c;最后汇总到excel上&#xff0c;此次压测报告就可以完成了&#xff0c;但收集报告也挺麻烦的&#xff0c;交给谁呢……找了一圈、没找到愿意接手…

C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结

1、常见字符串相关操作 我们知道有strlen、 strcpy、strcat、strcmp、这样一一系列函数 2、实现Demo #include <stdio.h> #include <string.h>//求字符串长度并且打印 void get_len(char *p) {int len = strlen(p);printf("%s len is %d\n", p, len); …

被AI人机疯狂单杀?王者荣耀AI“绝悟”亲测体验

文章目录&#xff08;一&#xff09; 如何评测“绝悟”的智能程度&#xff1f;&#xff08;二&#xff09;“绝悟”个体操作能力分析2.1 草丛埋伏2.2 越塔强杀2.3 技能避伤2.4 技能combo&#xff08;三&#xff09;“绝悟”团队意识能力分析3.1 团队支援3.2 团队控龙3.3 反野意…

background意识(两)

今天看到了有关学习的价值的文章background于background-position该博客&#xff0c;现在与大家分享&#xff1a;语法&#xff1a; background-position : length || length background-position : position || position 取值&#xff1a; length&#xff1a;百分数 |由浮点数字…

js 月份加6个月_美国切削工具6月份订单较上月增加10.1

根据美国切削工具协会(USCTI)和AMT美国制造技术协会的数据&#xff0c;2020年6月&#xff0c;美国切削工具的总消费额为1.506亿美元。根据参与切削工具市场报告合作的公司报告&#xff0c;这一总额比5月份的1.368亿美元增长了10.1%&#xff0c;与2019年6月报告的1.997亿美元相比…

Yet another nio framework for java

项目名称&#xff1a;Yanf4j(Yet another nio framework for java)项目地址&#xff1a;http://code.google.com/p/yanf4j/,当前版本0.30-beta1协议&#xff1a;Apache License, Version 2.0 简单描述&#xff1a;有这么多nio框架了&#xff0c;为什么要another&#xff1f;重复…

selenium 使用js执行脚本儿链接整理

2019独角兽企业重金招聘Python工程师标准>>> 使用Webdriver执行js小结&#xff1a;http://lijingshou.iteye.com/blog/2018929 SeleniumWebdriver学习(三)执行JS脚本&#xff1a;http://www.tuicool.com/articles/buIbeiN selenium webdriver 执行javascript代码&am…

C和指针之字符串之strncpy、strncat、strncmp

1、strncpy、strncat、strncmp 1)、函数原型char *strncpy(char *dest,char *src,size_t n); 复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_t n的值决定。如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。如果n<src的长度,只…

接口返回json对象出现套娃递归问题 | System.Text.Json 版本

前言看到一篇文章《Asp-Net-Core开发笔记&#xff1a;接口返回json对象出现套娃递归问题》原文是使用 NewtonsoftJson 解决的返回json对象出现套娃递归问题&#xff1a;services.AddControllersWithViews().AddNewtonsoftJson(options > {options.SerializerSettings.Refere…