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

相关推荐
我救我自己17 小时前
UE5 样条线组件(未完待续)
ue5
DBBH17 小时前
UE5材质篇 3 MaterialFunction
ue5·材质
暮志未晚Webgl17 小时前
106. UE5 GAS RPG 使用MVVM
ue5
1204157137 肖哥17 小时前
UE5.4 PCG 生成藤蔓墙体
ue5
暖和_白开水2 天前
材质(二)——材质参数化,从源材质继承生成不同的材质实例
ue5·材质
暖和_白开水3 天前
材质(一)
ue5·材质
UTwelve3 天前
【UE5】在材质中实现球形法线技术,常用于改善植物等表面的渲染效果
ue5·材质·虚幻引擎·着色器·虚幻4
1204157137 肖哥3 天前
UE5.4 PCG 自定义PCG蓝图节点
ue5
DBBH3 天前
UE5材质篇 2 ICE 冰材质尝试
ue5·材质
1204157137 肖哥3 天前
UE5.4 PCG 使用Union和Difference给菜地开路
ue5