• 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})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

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

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

    7fbc51b54538188c928f9ff959df77d

    然后就是代码

    #include 
    #include 
    
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

    5d0ff19f6d64c73f0828f903ab7bee9

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

    86bada7e67018a0f424a260be0c0afe
    运行结果

    image-20231119224727407

  • 相关阅读:
    electron build 打包时,背景图片失败,background-image: url 被转换成app:///img/
    Vue组件定义
    【初阶数据结构】二叉树链式结构的实现和遍历
    被 GitHub 「临时邮箱」项目拉黑,Firefox Relay 引热议;业内首个开源容器安全平台发布;Deepin 20.4 发布 | 开源日报
    调试学习wasm,emscripten的各种用法 js 与 C++ 的交互
    【】java.security.InvalidKeyException: Parameters missing
    Hudi学习三:数据写和数据读
    java计算机毕业设计医院远程诊断系统源程序+mysql+系统+lw文档+远程调试
    Unbiased Scene Graph Generation from Biased Training
    【面试】EntityFramework&Linq面试题&答案
  • 原文地址:https://blog.csdn.net/Johnor/article/details/134497355