当前位置:   article > 正文

Clion + OpenCV4.5.4 + VS2019配置详解_clion vs opencv

clion vs opencv

环境变量配置

下载并安装OpenCV,安装后的目录如下:
OpenCV安装目录
本文使用的是VS2019的带的VC16版本的编译器,环境变量配置如下:
环境变量配置

创建测试项目

使用Clion创建C++项目,由于使用的OpenCV是VC14的库,创建时语言标准也选择14,如下图所示:
Clion创建C++项目

编辑CMakefileLists

设置OpenCV路径

set(OpenCV_DIR $ENV{OPENCV_HOME}/lib/)
  • 1

查找模块文件

完成上一步之后CMake会进入设置的目录中找到OpenCVConfig.cmake文件,设置CMake需要加载读取的模块,一般第三方模块的命名方式都是xxxxConfig.cmake

find_package(OpenCV REQUIRED)
  • 1

拷贝动态库

在测试项目运行时需要将opencv_world454.dll(release)opencv_world454d.dll(debug)拷贝到.exe文件的同级目录下。

file(GLOB COPY_DLL "$ENV{OPENCV_HOME}/bin/*.dll")
file(COPY ${COPY_DLL} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
  • 1
  • 2

其中${CMAKE_CURRENT_BINARY_DIR}是CMake内置的变量,表示当前项目编译后二进制文件输出路径。

OpenCV内置变量

OpenCV也有一些内置的变量可用,这些变量都是在OpenCVConfig.cmake定义在文件中。

message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
  • 1
  • 2
  • 3
  • 4
  • 5

设置附加目录

在编译时需要将OpenCV的lib文件编译到exe文件中,设置如下:

target_link_libraries(OpenCVCode ${OpenCV_LIBS})
  • 1

设置target_link_libraries()函数,一定要在add_executable()前

测试程序

#include <iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
int main() {
    Mat src = imread("D:/Code/OpenCVCode/cat.jpg");
    namedWindow("CAT", WINDOW_AUTOSIZE);
    imshow("CAT", src);
    waitKey(0);
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

完整CMakefileLists

cmake_minimum_required(VERSION 3.21)
project(OpenCVCode)

set(CMAKE_CXX_STANDARD 14)
# 设置OPENCV环境变量
set(OpenCV_DIR $ENV{OPENCV_HOME}/lib/)
# 查找OPENCV模块
find_package(OpenCV REQUIRED)

# 设置需要拷贝的动态库
file(GLOB COPY_DLL "$ENV{OPENCV_HOME}/bin/*.dll")
file(COPY ${COPY_DLL} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

# 信息输出(非必须)
message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

add_executable(OpenCVCode
        main.cpp)

# 添加链接附加库目录
target_link_libraries(OpenCVCode ${OpenCV_LIBS})

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/778294
推荐阅读
相关标签
  

闽ICP备14008679号