UE5+OpenCV配置(Windows11系统)

一、概述

因为需要在UE5中使用OpenCV这些工具进行配置,所以在网络上参考借鉴一些资料进行配置。查询到不少的资料,最后将其配置成功。在这里顺便记录一下自己的配置成功的过程。

二、具体过程

(一)版本

使用Windows11系统、UE5.3,使用vscode进行操作(vscode和visual studio两者原理其实是一样的,使用哪个都可以),我这里使用vscode作为我的编辑器了。

OpenCV选择的是官方网站的4.10版本。网络上也有关于UE中OpenCV插件的安装,但是我没有尝试,这里主要是关于代码的安装测试。

(二)OpenCV版本选择

因为是使用Windows系统进行配置的,所以我这里直接在官方网站上选择Windows版本的OpenCV进行下载,这个已经编译完成,可以直接使用。也可以下载源代码在Windows系统上使用CMake进行编译,要求技术比较高,已经有别人编译完成能够使用的,我们选择这个。

Releases - OpenCVhttps://opencv.org/releases/

下载完成后,运行exe程序,将OpenCV代码提取出来,此时提取出来的路径可以随便书写,解压后如图所示。

(三)UE5项目配置过程

1.OpenCV文件夹建立

首先我们要新建一个UE5的项目,选择C++,这里我的项目名称是test2,如图所示。这里我们新建立一个ThirdParty的文件夹用以存放第三方库,这个文件夹的位置在哪里对整体的影响不大。

如图所示。在ThirdParty文件夹中专门为OpenCV单独建立一个文件夹,因为可以日后还需要增加别的第三方库,这里可以更好的区分。

在opencv文件夹内,如图所示,需要我们建立这三个文件夹,分别是bin,include,lib。(主要是lib和include,bin这个文件夹实际没有怎么用到它)。

打开刚才从官方网站解压提取出来的OpenCV文件夹,如图所示,打开build文件夹。

将build文件夹中的include目录下面的内容,整体复制到ThirdParty/opencv下面,如图所示。

如图所示,接下来,打开build文件夹里面的x64位,选择vc16(根据自己版本来选择)里面中的bin和lib两个文件夹下的内容,分别复制到ThirdParty/opencv下面bin和lib目录下面。

2.项目文件修改test2.Build.cs

test2.Build.cs是指你建立的项目名称YourProjectName.Build.cs,位于source文件夹下面。

打开这个文件。在里面添加下如下代码。OpenCVPath是指自己的OpenCV路径,这里我使用的是绝对路径,缺点是,我新建立一个项目每次又要修改,也有别的写法。

cs 复制代码
string OpenCVPath = "D:/scholar/UE5/TEST/test2/ThirdParty/opencv";
// Add OpenCV include path
PublicIncludePaths.Add(Path.Combine(OpenCVPath, "include"));

// Add OpenCV library path using PublicSystemLibraryPaths
PublicSystemLibraryPaths.Add(Path.Combine(OpenCVPath, "lib"));

// Add OpenCV library file
PublicAdditionalLibraries.Add(Path.Combine(OpenCVPath, "lib", "opencv_world4100.lib"));

需要注意在文件开头引用这个。

cs 复制代码
using System;

不引用的话,系统无法识别Path,会报错。

这里主要将include中的头文件和动态链接库进行添加。

3.编译报错解决------UE5和OpenCV中check()函数冲突

将test2.Build.cs文件修改完成后,进行编译生成,发现报错。主要问题出在opencv/core/utility.hpp这个文件下面。

文件中报错的具体位置,如图中红色部分圈出所示。

出现报错的原因是,经过查询后,在YouTube的一个视频(视频链接放在下面,视频是讲述如何在UE4中配置OpenCV的,跟UE5配置流程差不多)中,他给出的解释是,UE里面也定义了check函数,OpenCV里面也有这个函数,两者的命令冲突了,所以报错发生了。
https://www.youtube.com/watch?v=YOidIl2kTD0https://www.youtube.com/watch?v=YOidIl2kTD0

这里的解决方法是将OpenCV中check函数进行修改,将其名称改为cv_check()即可通过编译。如图所示。首先第一步将utility.cpp中关于check的if 定义的语句注释掉,如图所示。

第二步,按下ctrl+F进行check()的查找。将其更改为cv_check(),如图所示

完成操作后,重新编译,引用头文件时候,不会发生报错。

4.自动补全的实现

做完上述步骤之后,在代码编译后,不会发生报错,但是自己编写代码的时候没有出现相应的自动补全提示。这里我们的解决方式是。在所建立项目中Binaries/Win64文件夹下面,添加几个dll文件。

如图所示。这几个动态链接库的文件名称如下所示。

5.补充说明

假如在 Binaries/Win64下面添加dll文件后,依旧无法出现代码补全提示的话,在UE5中打开这个项目,将重新生成这个项目即可。

三、参考链接

跟里面有些地方有差异,关于报错部分进行的解决部分和代码自动补全进行添加和补充。UE5_OpenCV库的加载方式_ue opencv-CSDN博客文章浏览阅读1.3k次。UE5中OpenCV库的加载_ue opencvhttps://blog.csdn.net/weixin_42318094/article/details/132946767 YouTube视频链接,根据这个视频的操作进行的。将全部check()函数报错的地方都要进行修改。

https://www.youtube.com/watch?v=YOidIl2kTD0https://www.youtube.com/watch?v=YOidIl2kTD0

相关推荐
远离UE415 小时前
UE5 GPU内部异步
ue5
1204157137 肖哥15 小时前
UE5 PCG PCGBlueprintElement简介
ue5
dong13269715 小时前
UE5FPS游戏开发教程(四)
ue5
dong1326971 天前
UE5FPS游戏开发教程(三)
ue5
日月云棠1 天前
UE5源码分析之Editor——AnimationBlueprintLibrary模块全面分析
ue5
远离UE42 天前
UE5 ECS 原理
ue5
mengzhi啊3 天前
UE5 把剑绑定到骨骼-给要播放的动画及动画蒙太奇添加武器
ue5
directx3d_beginner4 天前
32,每帧更新怪物朝向改为c++
ue5
日月云棠4 天前
UE5源码分析之Editor——AnimationEditor模块全面分析
ue5
吴梓穆4 天前
UE5 播放透明视频
ue5