0. 安装 mingw64

官网链接:mingw

  1. 安装红框标记下载免安装版本,解压可用。
    image-20230809214627758
  2. 将解压后的 mingw64\bin 添加到 path 环境变量
  3. cmd 中输入 gcc -v,出现下图所示即配置成功

image-20230809214807503

1. 下载 OpenCV 源码

源码下载

官网:Releases - OpenCV

image-20230808164909641

运行下载好的 exe 文件,指定一下源码的存放路径

下载好的源码如下图所示

image-20230808165216872

扩展文件下载

下载官网:Tags · opencv/opencv_contrib (github.com)

下载后解压放到 OpenCV 路径下

image-20230809230948205

2. 安装 CMAKE

已经编译好的 OpenCV 源码:https://pan.baidu.com/s/1NF5PElfjJT49pnpqgQy3zg?pwd=ksz0

如果使用我编译好的,直接跳到 4.5,去配置环境变量,然后进入 clion 进行测试

使用的是 mingw-build 文件夹,可以删除除 VS-build 文件夹

VS-build 文件夹是使用 VS 进行 build 的,那个如果不使用可以删掉(VS-build),vsbuild 的文件有十几个 G

官网:Download | CMake

image-20230808170430046

运行安装文件,中间需要勾选添加环境变量

image-20230808170627223

更改安装路径

image-20230808170701742

3.ckame 编译 OpenCV

  1. 在 OpenCV 源码路径下新建一个 mingw-build 文件夹
  2. 将 build/bin 目录下 opencv_videoio_ffmpeg470_64.dll 文件拷贝至 sources/3rdparty/ffmpeg 目录下
  3. 打卡 cmake,如下图所示,选择文件路径

image-20230808171506788

  1. 点击 configure,在弹出的窗口中选择 Mingw Makefile,编译器默认的就行

image-20230808223910146

  1. 当第一次编译完后,出现红色背景的内容,勾选下图所示内容,然后继续点击 configure

image-20230809211613677

image-20230808231857217

image-20230809231055252

  1. 多次点击 configure,直到没有红色出现

中间可能在下载时会报错

FFMPEG: Download failed: 28;“Timeout was reached”

解决方式:

  1. 将下载链接复制下来,输入到浏览器中进行下载

  2. 打开 opencv 的 source 文件夹下的.cache 文件夹中

  3. 复制没下载成功的文件的名,将在网页下载成功的文件重命名为刚才复制对的名

  4. 将重命名后的文件放到.cache 文件夹下的各个文件夹中,将原始文件进行替换【确实文件放置位置的方法:下载链接中有对应的文件夹名】

  5. 重新点击 configure

image-20230808235948300

  1. 点击 generator

image-20230809000016173

4. 安装编译文件

  1. 进入 mingw-build 文件夹
  2. 在路径上输入 cmd,然后回车(建议直接以管理员身份运行,普通方式运行可能会出现一些报错)

image-20230809000210918

image-20230809000229036

  1. 输入 mingw32-make -j 16

报错解决:

  1. 如果出现 error: 'recursive_mutex' in namespace 'std' does not name a type,则重新下载 posix 版的 mingw64 ,然后再在 cmake 中重新编译 OpenCV 源码
  2. 如果出现 undefined reference to _Unwind_Resume' 之类的,以管理员身份运行 cmd,重新编译

image-20230809213424554

  1. 出现之类 Anaconda3-/hdf5 的报错,不使用 Anaconda3 的 Python 环境更换其他 Python 环境或者直接不使用 Python 环境(直接在 path 环境变中先删除 Anaconda 的 Python 配置,更换为其他的 Python 或者不配置 Python),重新用 cmake 进行编译,然后再在 cmd 运行

image-20230810110217317

image-20230809213446910

  1. 输入 mingw32-make install

image-20230809213644437

  1. 添加环境变量,将 mingw-build\bin 目录添加到系统环境变量

image-20230809221112296

5.Clion 配置使用

  1. 新建一个项目
  2. 将下面的内容复制到 CMakeLists.txt
cmake
1
2
3
set(OpenCV_DIR E:/kaifa/C/opencv/mingw-build/install) #这里刚才编译的OpenCV的路径
find_package(OpenCV REQUIRED)
target_link_libraries(OpenCVtest ${OpenCV_LIBS}) #OpenCVtest是你的项目名称

image-20230809215512469

  1. 运行 main.cpp 文件
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "iostream"
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main() {

Mat img = imread("E:/C-Project/OpenCVtest/1.jpg");
cout << img.type() << endl;
if (img.empty()) {
cout << "Error" << endl;
return -1;
}
imshow("Lena", img);
waitKey();
return 0;

}
  1. 弹出图片则表示环境配置成功