Clion+OpenCV(C++版)开发环境配置教程Win/Mac

平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的OpenCV来节约上位机资源提高运行的速度,在查阅了网上的各种资料后发现这些资料参差不齐有些博客的方法绕来绕去,有些博客每一步也不太详细,于是决定自己记录分享一下自己配置环境的过程以供大家参考。

Windows配置方法

一、下载相关软件和工具

这里给出一些开发配置环境过程中需要用到的软件以及工具,在这里给出本人亲测可以使用的链接,如果打不开或者下载速度慢可以试试Science on the Internet

​      · Clion:CLion: A Cross-Platform IDE for C and C++ by JetBrains

​      · OpenCV:OpenCV 4.10.0_Github

下载Winodws版本的exe安装文件

· Cmake:Cmake_Binary distributions

​        在Binary distributions这一栏中选择适合自己的版本进行下载

注意事项:

​     · Clion和OpenCV建议下载最新的版本

​     · 如果OpenCV需要使用前版本的话需要额外重新下载MinGW

​     · 所有安装路径不要出现中文!一定不要有中文!!!

二、安装过程

!!!再次检查自己电脑中是否已经下载好了Clion、OpenCV、Cmake的安装包。!!!

(一)Clion的安装

Clion 是 Jetson 推出的一个C和C++集成开发环境,其可以支持嵌入式开发,虽然这个软件是收费的但如果你是学生或者教育工作者的话均可以申请免费使用但是速度通过速度较慢大致需要1Days的样子,还有一种方式在此不做过多的赘叙(为何你不看看万能的Tao宝呢???)同时由于Clion自带MinGW,所以其实配置C语言环境的过程中不需要像其他网上的教程所说重新下载一遍MinGW!!!

Clion的安装较为简单,在此就不详细展开唯一要注意的便是在安装的界面中记得勾选"添加Bin文件到PATH"免得后期自己添加过于麻烦,只不过安装完成之后需要重启一下更新系统环境变量

(二)下载编译OpenCV

接下来打开我们从Github下载的OpenCV"opencv-4.10.0-windows.exe"安装包,双击运行之后会让读者选择一个目录解压生成一个OpenCV的文件包,里面有两个文件夹一个"build"是官方已经预编译好可以直接使用的C++功能包,还有一个"sources"是对应的源码。具体如下图:

虽然我们可以直接使用官方编译好的文件进行开发,但是我们自己电脑Clion的MinGW和其他环境与已经编译好的不匹配容易出现一些比较奇怪的问题,因此建议大家重新进行编译,这时就需要用到我们的Cmake了,我们打开我们最开始下载的Cmake安装包,在Bin文件中可以找到"cmake_gui.exe"这个软件双击打开。

打开Cmake后接着我们把Clion自带的MinGW添加到系统环境变量用以编译,首先打开系统设置,在搜索框搜索"环境"选择编辑系统环境变量,在弹出的窗口选择"环境变量"一项

接着在下方"系统变量"窗格双击"Path"即可进入系统环境变量的编辑窗口

接着在弹出的窗口点击浏览后找到Clion的安装路径选择"bin"->"mingw"->"bin"即可

添加MinGw到环境变量后我们便可以开始编译了,我们打开Cmake,在第一栏路径中选择我们一开始解压生成的OpenCV的源码文件夹"sources",接着在第三栏中添加一个编译文件的存放地址,这个地址可以自主选择建议在opencv源码的统计目录下创建一个新的易于分辨的文件夹存放,接着便可以点击左下角的Configure进行配置了(第一次点击会弹出编译选项,在下拉框中选择MinGW MakeFiles后点击Finish即可开始配置)

在这个过程中可能会出现编译失败,这时我们不要着急,一般会出现的报错只有两种第一种是一开始会提示找不到MinGW这种一般是环境变量添加失败导致的,如果检查之后发现环境变量没有问题的话可以重启一下电脑更新配置,然后如果是在配置过程中报错或者是失败一般是源码中的ffmpeg文件夹缺少文件编译器自动下载失败(没XXXX的话会很慢甚至失败,建议从log中复制地址到浏览器自行下载后添加进opencv源码中的ffmpeg文件夹),每次重新开始配置的话记得删掉编译的文件夹!!!(删掉存放目录就好)避免之前的报错对本次产生影响。

如果log窗口显示(Configure Done)即配置成功。

接下来我们便可以点击"Generate"来生成MakeFiles,出现"Generate Done!"即生成成功

这时我们便可以打开我们创建的编译目录(我的叫mingw_build),接着在当前的文件夹打开CMD后(在文件夹上方路径窗格输入CMD即可在当前文件夹路径打开CMD)在出现的CMD窗口中输入"mingw32-make -j4"即可开始编译(-j4为使用4线程进行编译的意思,如果电脑配置较高可以适当改大编译的线程数来加速编译)

如图便开始了编译

中间没有出现红色的报错即编译完成,如果中间有报错有可能是因为MinGw与OpenCV版本不兼容,最新的OpenCV与最新的CLion中自带的MinGW是可以完美适配的如果编译出现问题可以查看版本来适当升高或者降低MinGW/OpenCV的版本

编译没有出错后我们便可以再次输入"mingw32-make install"来生成我们编译好的环境安装包

这个过程一般不会报错

如下图即为安装完成,接着我们把编译生成的环境安装包的bin文件夹("opencv"->"mingw_build"->"install"->"x64"->"mingw"->"bin")添加到环境变量即可

至此!Windows下OpenCV的C++版本已经安装完成啦,在Clion中的使用方法请看最后一节

Mac配置方法

Mac电脑运行的Mac OS的内核是由Unix演化而来的,因此Mac系统也有着和Linux一样的包管理工具,最知名的便是HomeBrew,通过这一个工具我们便可以一键配置好OpenCV的开发环境非常的便捷。想要安装OpenCV我们需要先安装HomeBrew,接下来我们便一步一步优雅的配置OpenCV的环境。

#首先检查电脑中有无HomeBrew的环境
brew -v #有输出的话便代表电脑中存在HomeBrew
#如果有HomeBrew,先进行卸载
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
#类似于ROS,HomeBrew也有大神做了一个一键自动化安装脚本(但可能需要Science on the Internet)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" #根据提示一步步安装即可

安装完HomeBrew后我们便可以一行命令安装好OpenCV啦

brew install opencv     #安装OpenCV

耐心等待运行完成即可

至此!Mac下OpenCV的C++版本已经安装完成啦,在Clion中的使用方法请看最后一节

测试OpenCV

我们在Clion中新建一个工程,然后修改默认生成的CmakeLists文件

cmake_minimum_required(VERSION 3.19)
project(untitled) set(CMAKE_CXX_STANDARD 11) find_package(OpenCV) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(untitled main.cpp) target_link_libraries(untitled ${OpenCV_LIBS})

接着运行以下代码

#include <iostream>
#include <opencv2/opencv.hpp> using namespace std;
using namespace cv; int main() {
Mat srcImage = imread("你的图片路径");
if (!srcImage.data) {
std::cout << "Image not loaded";
return -1;
}
imshow("image", srcImage);
waitKey(0);
return 0;
}

无报错且正常显示了图片即代表安装成功!!!

可能出现的报错

  1. 运行brew install opencv报错:Error: /usr/local/opt/qt is not a valid keg

    首先将/usr/local/opt/qt文件夹下的内容进行删除(建议备份一下):

    # 拷贝来进行备份,将xxxxx替换为你的用户名
    cp -r /usr/local/opt/qt /Users/xxxxx/
    # 删除文件,如果需要root权限就sudo一下
    rm -r /usr/local/opt/qt

    根据brew doctor的提示,建立符号连接:

     brew link --overwrite qt

    然后再运行安装或更新命令就可以了

     brew install qt
    # 或
    brew upgrade

大家在配置的过程中遇到了什么问题欢迎来找我解决或者找我完善补充本教程!

大家在配置的过程中遇到了什么问题欢迎来找我解决或者找我完善补充本教程!

大家在配置的过程中遇到了什么问题欢迎来找我解决或者找完我完善补充本教程!

Clion+OpenCV(C++版)开发环境配置教程WinMac的更多相关文章

  1. OpenCV+VS 2015开发环境配置

    最近跑C程序,头文件中用到了OpenCV中的文件,找了很多篇OpenCV+VS的环境配置,发现如下这篇写的最为详细,特转载来自己的博客中留存,并附上原博客地址如下 OpenCV学习笔记(一)——Ope ...

  2. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  3. 在Android Studio上进行OpenCV 3.1开发环境配置

    开发环境: Windows 7 x 64 家庭版 Android Studio 1.5.1(Gradle版本2.8) JDK 1.8.0 Android 6.0(API 23) OpenCV 3.1. ...

  4. vscode C++开发环境配置教程(教你如何用vscode写C++)

    用了一段时间的cb,Devc++,但一直感觉cb的高亮太差,而Devc++使用体验差(尤其是代码补全功能),换过vs2017,但是由于其太大了,卡顿十分明显,所以最终选择了vscode这款轻量级编译器 ...

  5. Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程

    前几天无聊就弄了弄这个玩,网上教程可能有点杂,在这里就总结一下. Digispark开发板(也就是badusb)能干什么,自己搜去,/坏笑. 1.准备材料:Attiny85微型 USB接口开发板 Di ...

  6. 踏入OpenGL大门 —— VS2015开发环境配置 (详细图文)

    转自: https://www.jianshu.com/p/68c314fa9fea?from=groupmessage   眼睛熊 ---------------- 本文 ------------- ...

  7. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  8. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...

  9. 【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置

    目录(?)[-] 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分 ...

  10. 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    1.下载和安装OpenCV SDK     VS2010不用说,肯定都安装了吧.来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装.与其说是 ...

随机推荐

  1. IEC61850方案分享,基于全志、瑞芯微国产平台实现!

    什么是IEC61850协议? IEC61850是一种用于在电力自动化系统中进行数据交换和控制的通信协议.它定义了一种标准化的通信和数据模型,以支持设备和系统之间的数据交换和互操作性. IEC61850 ...

  2. 【Redis】BigKey问题

    面试题 海量数据里查询某一固定前缀的key 生产上如何限制 keys * / flushdb / flushall 等危险命令以防止误删误用? MEMORY USAGE 命令用过吗? BigKey问题 ...

  3. ORACLE 如何判断某字段是否小于0

    Oracle 自带的函数 SIGN 表达式的正 (+1).零 (0) 或负 (-1) 号 SQL> SELECT SIGN(-47.3), SIGN(0), SIGN(47.3) FROM du ...

  4. Maven Helper插件——实现一键Maven依赖冲突问题

    业余在一个SpringBoot项目集成Swagger2时,启动过程一直出现以下报错信息-- An attempt was made to call a method that does not exi ...

  5. PHP 程序员为什么依然是外包公司的香饽饽?

    大家好,我是码农先森. PHP 唯一的爽点就是开发起来「哇真快」这刚好和外包公司的需求相契合,在 Web 领域的芒荒年代 PHP 以王者姿态傲视群雄.如果 PHP 敢说第二,就没有哪门子语言敢称第一, ...

  6. 英伟达又向开源迈了一步「GitHub 热点速览」

    大家是否还记得 2012 年,Linux 之父 Linus Torvalds 在一次活动中"愤怒"地表达了对英伟达闭源 Linux GPU 驱动的不满?这个场景曾是热门表情包,程序 ...

  7. Aic 应用开发基础一(概念与场景)

    Agi通用人工智能应用概念与场景 大家看到,自美国OpenAI主导的GPT发布以来,全球科技领域掀起了革命性的浪潮.比如最近看到的aigc 人工绘图,智能机器人等行业,很多新概念掘起, 随着人工智能技 ...

  8. Jmeter函数助手12-threadNum

    threadNum函数用于获取当前线程编号.该函数没有参数,直接引用即可. 1.线程数可在组件[测试计划->线程组]设置.如下是不传入循环次数的${__threadNum}. "调试取 ...

  9. SQL实战从在职到离职(1) 如何处理连续查询

    书接上回,最近离职在家了实在无聊,除了看看考研的书,打打dnf手游,也就只能写写代码,结果昨晚挂在某平台的一个技术出售有人下单了,大概业务是需要帮忙辅导一些面试需要用到的SQL. 回想了下,在该平台接 ...

  10. 【Java-GUI】09 Swing03 对话框

    消息弹出框案例: package cn.dzz.swing; import javax.swing.*; import java.awt.*; import java.awt.event.Action ...