使用CLion开发openCV——环境搭建全记录

准备

  1. cmake
  2. Dev C++(用于提供mingw环境)
  3. opencv安装包
  4. 大概率会在安装过程中下载失败的dll文件
  5. Git(用于提供linux编译环境)
  6. Clion安装包

1-4的资源来这里找:https://pan.baidu.com/s/1sqWsyG1r1BDjwfaq75pSKQ
提取码:6j99

安装&解压

第一步,配置MinGW环境

这一步可以采用MinGW安装包在线安装,但大概率因为网络问题安装失败,有条件的同学可以自行尝试,这里我推荐使用Dev-C++自带的MinGW环境。
双击安装程序,傻瓜式安装Dev-C++,将目录下的MinGW64\bin文件添加到系统环境变量中。
在这里插入图片描述
验证环境变量是否添加成功,可以打开CMD,输入gcc -v,有如下输出代表环境变量配置正确。
在这里插入图片描述

第二步,使用cmake-gui配置安装环境

2.1

cmake压缩包解压后在bin文件中找到执行程序
在这里插入图片描述
双击打开,可以看到如下界面
①. opencv安装包解压目录
②. 新建文件夹命名为mingw-build用于存放编译的中间产物
③. 上面的两个步骤都配置完之后,点击configure,选择MinGW编译环境,开始配置。
在这里插入图片描述

2.2

下面的步骤非常关键
因为网络问题,configure过程中会有下面几个包下载失败

  1. opencv_videoio_ffmpeg.dll
  2. opencv_videoio_ffmpeg_64.dll
  3. ffmpeg_version.cmake

修改配置文件
来到解压路径\opencv\sources\3rdparty\ffmpeg你可以看到下面几个文件:
在这里插入图片描述
打开标红的ffmpeg.cmake,删除有关下载的内容,剩下的部分是这样的

# Binaries branch name: ffmpeg/master_20190616
# Binaries were created for OpenCV: 7b099e0fe2d929e55d6705b6ad510c2c9081606b
ocv_update(FFMPEG_BINARIES_COMMIT "998718df34e35ea0fa429724875fc3900faa266f")
ocv_update(FFMPEG_FILE_HASH_BIN32 "f03b47fb809edd2e06b6db135cbd3e49")
ocv_update(FFMPEG_FILE_HASH_BIN64 "5c4571459570c288d874704244c428b5")
ocv_update(FFMPEG_FILE_HASH_CMAKE "f710891525a04586d565d0e700e62a9c")

function(download_win_ffmpeg script_var)
  set(${script_var} "" PARENT_SCOPE)

  set(ids BIN32 BIN64 CMAKE)
  set(name_BIN32 "opencv_videoio_ffmpeg.dll")
  set(name_BIN64 "opencv_videoio_ffmpeg_64.dll")
  set(name_CMAKE "ffmpeg_version.cmake")

  set(FFMPEG_DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/3rdparty/ffmpeg")

  set(status TRUE)
  if(status)
    set(${script_var} "${FFMPEG_DOWNLOAD_DIR}/ffmpeg_version.cmake" PARENT_SCOPE)
  endif()
endfunction()

if(OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT)
  configure_file("${CMAKE_CURRENT_LIST_DIR}/ffmpeg-download.ps1.in" "${CMAKE_BINARY_DIR}/win-install/ffmpeg-download.ps1" @ONLY)
  install(FILES "${CMAKE_BINARY_DIR}/win-install/ffmpeg-download.ps1" DESTINATION "." COMPONENT libs)
endif()

ocv_install_3rdparty_licenses(ffmpeg license.txt readme.txt)

将提前下载好的三个文件直接放到opencv\sources\3rdparty\ffmpeg目录下,再次点击configure就不会报错了(如果还是报错请接着往下看),configure完成后,点击generate生成makefile,
在进行下一步之前,你需要检查下面的目录
解压路径\opencv\mingw-build\3rdparty\ffmpeg
如果路径不存在,就从opencv\sources\3rdparty\ffmpeg复制一份到这里(configure报错多半是找不到路径)。
如果configure和generate的过程都顺利结束了,我们接着进行下一步。

第三步,编译

打开Git,输入gcc-v,我们应该得到和cmd内容相同的输出。
不要使用cmd窗口编译。会出现’chmod’ 不是内部或外部命令,也不是可运行的程序等类似这样的报错,chmod是linux的专有命令。
在这里插入图片描述
输入命令

mingw32-make

开始编译,单核编译,比较慢。

3.1错误一

在这里插入图片描述
通过错误的提示我们可以知道mingw-build/dnn中找不到test_common.hpp文件,我们可以从
解压目录\opencv\sources\modules\dnn\test
中复制一份到对应目录下
在这里插入图片描述

3.2错误二

在这里插入图片描述
找不到文件
opencv/mingw-build/3rdparty/ffmpeg/opencv_videoio_ffmpeg_64.dll
同样是这个系列的第三方库,复制一份到对应目录下。所以最终这个文件夹下的内容有这么一堆:
在这里插入图片描述
我这边再编译就顺利完成了。

第四步,生成install文件夹

上面的步骤完成后,继续在Git界面中输入如下命令

mingw32-make install

执行完毕后会生成这样一个文件夹
在这里插入图片描述
将bin文件中的内容添加到系统路径
在这里插入图片描述
打开CMD,输入opencv_version,查看版本信息
在这里插入图片描述

第五步,配置Clion环境

Clion提供免费的学生版本可以官网自行申请
在这里插入图片描述
Clion工具链我同样使用Dev-C++的MinGW,中间的一行警告应该是非法字符造成的,实际不影响使用。

第六步,openCV测试

新建工程C-Test
设置CMakeList.txt

cmake_minimum_required(VERSION 3.15)
project(C_Test)

set(CMAKE_CXX_STANDARD 14)
# 可以将下面的路径单独添加到环境变量OpenCV_DIR
set(OpenCV_DIR "D:\\Program Files\\opencv\\mingw-build\\install")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs)
# "C_Test"与你工程的命名相关,注意和原来CMakeList.txt中的声明一致
add_executable(C_Test main.cpp)

target_link_libraries(C_Test ${OpenCV_LIBS})

在main.cpp中输入以下内容

#include "iostream"
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;

int main() {
    Mat img = imread("lena.jpg");
    if (img.empty()) {
        cout << "Error" << endl;
        return -1;
    }
    imshow("Lena", img);
    waitKey();
    return 0;
}

将lena.jpg放到cmake-build-debug路径中,因为编译生成的可执行文件在这里,或者你也可以使用绝对路径。
关于莱娜背后的故事有兴趣的同学可以参考这篇博客
原图:
在这里插入图片描述
真原图:http://www.lenna.org/full/l_hires.jpg
运行测试:
在这里插入图片描述
#-----------------------------------------------------------#
都看到这里了,真不打算点个赞吗 :)

  • 33
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值