服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - Clion配置opencv开发环境的详细过程

Clion配置opencv开发环境的详细过程

2022-11-03 14:34ericling C/C++

这篇文章主要介绍了Clion配置opencv开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考的下

之前尝试用vs写opencv的项目,但是因为各种使用习惯很难改过来,加上vs的快捷键和代码智能提示相当的蛋疼,所以尝试着在clion上配置opencv开发环境。

以下是详细配置过程:

预先需要安装的软件:

clion:这个是jetbrain家出品的C++集成开发环境,如果你用习惯了idea,pycharm,那么上手这个软件,应该也是比较简单的。相比较巨硬家的visual studio而言,个人觉得vs的快捷键着实蛋疼,而且用的确实少,一些窗口设置不太习惯。这个软件安装比较简单,不详细展开

mingw: opencv需要用到c++编译环境,mingw是比较常用的一个。不过,需要安装支持多线程的版本,即posix版本,如果不用这个版本,在编译的时候会出问题。[下载地址](https://jaist.dl.sourceforge.net/project/mingw-w64/Toolchains targetting Win64/Personal Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z) ,下载好之后,还需要配置环境变量,如下图所示:

Clion配置opencv开发环境的详细过程

通过在命令行中运行如下命令,查看是否成功安装

gcc --version

Clion配置opencv开发环境的详细过程

cmake:这个软件的安装也比较简单,也可以不用配置环境变量,因为后期生成Makefile文件也是在gui界面里面生成的。Cmake下载地址 旧版的Cmake可以自定义设置entry开启或者关闭,我下载的是最新的,问题不大。

编译安装opencv

  • 下载opencv并解压到一个路径下
  • 使用cmake-gui生成makefile文件

下载好后的opencv存放路径和文件目录结构如下

Clion配置opencv开发环境的详细过程

打开cmake的图形化工具,选择好相应的路径

Clion配置opencv开发环境的详细过程

然后选择tools菜单,点击configure,这个过程需要持续一定的时间,并且很可能会失败,遇到各种错误,遇到错误之后,不用担心,一个一个错误解决即可,大部分的错误基本上都是文件下载失败错误。这个过程会在GitHub上下载三个文本文件,如果没有配置FQ的话,很有可能会下载失败,我们可以手动下载好这三个文件并存放到相应的目录,即可成功解决。之后继续点击configure。

Clion配置opencv开发环境的详细过程

这三个下载失败的文件,就是上图中蓝色字体,复制对应的下载路径,手动下载好之后,修改文件名,然后存放到对应的目录中。

举个例子:

第一个文件,下载路径是:https://raw.githubusercontent.com/opencv/opencv_3rdparty/629590c3ba09fb0c8eaa9ab858ff13d3a84ca1aa/ffmpeg/opencv_videoio_ffmpeg.dll

存放的路径是:

D:/software/opencv_clion/opencv/sources/.cache/ffmpeg/638065d5a0dab8a828879942375dcac4-opencv_videoio_ffmpeg.dll

文件内容须和指定文件下载链接中的文件内容一致,第三个文件用浏览器打开是直接显示文件内容,如果你选择复制手动创建这个文件,md5校验可能会失败(空格或者其它的字符不匹配等等),文件名,文件存放路径,必须和日志文件完全一样。

排查好这三个错误,后面继续configure就没有问题了。

这三个文件,我也提供下载链接:

ffmpeg_version.cmake)

opencv_videoio_ffmpeg.dll

opencv_videoio_ffmpeg_64.dll

configure结束之后,开始generate,也是点击cmake的tools菜单项,选择generate,生成makefile文件

然后git bash进入到mingw_build目录下,之后运行以下命令

mingw32-make -j4

利用mingw进行编译。-j4代表使用四个线程加速编译。可根据自己电脑配置合理选择。 编译时间较长,大约十几分钟左右。此时如果报错可能是MinGW版本选择问题。

结束之后,运行以下命令

mingw32-make install

配置环境变量,将{opencv_homedir}/opencv/MinGW-build/install/x64/mingw/bin加入环境变量中的path中。

clion新建项目

CMakeLists.txt文件内容如下:

cmake_minimum_required(VERSION 3.20)
project(learnopencv)
set(CMAKE_CXX_STANDARD 14)
set(OpenCV_DIR D:softwareopencvmingw_buildinstall)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(learnopencv main.cpp)
target_link_libraries(learnopencv ${OpenCV_LIBS})

main.cpp文件内容如下:

#include "iostream"
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
    Mat img = imread("D:projects_cppunarchivedlearnopencvimageslena.jpg");
    if (img.empty()) {
        cout << "Error" << endl;
        return -1;
    }
    imshow("Lena", img);
    waitKey();
    return 0;
}

运行结果如下:

Clion配置opencv开发环境的详细过程

到此这篇关于Clion配置opencv开发环境的文章就介绍到这了,更多相关Clion配置opencv开发环境内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://www.cnblogs.com/ericling/p/15586751.html

延伸 · 阅读

精彩推荐
  • C/C++C语言实现扫雷小游戏详细代码

    C语言实现扫雷小游戏详细代码

    这篇文章主要为大家详细介绍了C语言实现扫雷小游戏的代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    是崽崽a3852021-11-12
  • C/C++C++中抽象类和接口的区别介绍

    C++中抽象类和接口的区别介绍

    抽象类(abstract class)和接口(interface)的概念是面向对象设计中常用的概念, 也是比较容易混淆的概念. 在这里, 我提出一种区分它们的思路...

    C++教程网4692020-11-20
  • C/C++浅谈2路插入排序算法及其简单实现

    浅谈2路插入排序算法及其简单实现

    这篇文章主要介绍了浅谈2路插入排序算法及其简单实现,虽算不上是常用的排序方法,但在数据库等方面依然有用上的机会,需要的朋友可以参考下...

    zinss269146182021-03-06
  • C/C++c++11&14-STL要点汇总

    c++11&14-STL要点汇总

    这篇文章主要介绍了c++11&14中的STL要点,文中代码简单易懂,方便大家更好的学习参考,感兴趣的朋友可以了解下...

    newname11232021-09-09
  • C/C++C语言实现简易停车场管理系统

    C语言实现简易停车场管理系统

    这篇文章主要为大家详细介绍了C语言实现简易停车场管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    计算机小弟1110042022-10-20
  • C/C++《C++ primer plus》读书笔记(三)

    《C++ primer plus》读书笔记(三)

    本文是C++读书笔记系列的第三篇,是读完《C++ primer plus》一书第九、十两章记录下来的笔记,学习C++的同学可以看看参考下。...

    钱书康8632021-02-07
  • C/C++C++ 基于BFS算法的走迷宫自动寻路的实现

    C++ 基于BFS算法的走迷宫自动寻路的实现

    这篇文章主要为大家介绍了C++ 基于BFS算法实现走迷宫自动寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    coolight76332022-02-24
  • C/C++详解C语言中accept()函数和shutdown()函数的使用

    详解C语言中accept()函数和shutdown()函数的使用

    这篇文章主要介绍了详解C语言中accept()函数和shutdown()函数的使用,用来操作socket相关的网络通信,需要的朋友可以参考下...

    C语言教程网7562021-03-11