当前位置: 首页 > news >正文

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 - OpenCVicon-default.png?t=N7T8https://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路径,这里我使用的是绝对路径,缺点是,我新建立一个项目每次又要修改,也有别的写法。

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"));

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

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=YOidIl2kTD0icon-default.png?t=N7T8https://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=YOidIl2kTD0icon-default.png?t=N7T8https://www.youtube.com/watch?v=YOidIl2kTD0           

相关文章:

UE5+OpenCV配置(Windows11系统)

一、概述 因为需要在UE5中使用OpenCV这些工具进行配置,所以在网络上参考借鉴一些资料进行配置。查询到不少的资料,最后将其配置成功。在这里顺便记录一下自己的配置成功的过程。 二、具体过程 (一)版本 使用Windows11系统、UE5.…...

自研Vue3开源Tree组件:节点拖拽bug修复

当dropType为after,且dropNode为父节点时,bug出现了: bug原因:插入扁平化列表的位置insertIndex计算的不对: 正确的逻辑,同inner要算上子孙节点所占的位置: bug修复!...

SSM学习9:SpringBoot简介、创建项目、配置文件、多环节配置

简介 SpringBoot式用来简化Spring应用的初始搭建以及开发过程的一个框架 项目搭建 File -> New -> Project 选中pom.xml文件,设置为maven项目 项目启动成功 可以访问BasicController中的路径 配置文件 在resources目录下 application.properties 默…...

Java面试题---索引

什么是索引 索引是用来高效获取数据的存储结构如同字典的目录一样,数据库的索引通常使用btree来实现,索引树的节点和数据地址相关联,查询的时候在索引树种进行高效搜索,然后根据数据地址获取数据。索引提高了搜索的效率同时增加了…...

ollama本地部署大语言模型记录

目录 安装Ollama更改模型存放位置 拉取模型GemmaMistralQwen1.5(通义千问)codellama 部署Open webui测试性能知识广度问题1问题2 代码能力总结 最近突然对大语言模型感兴趣 同时在平时的一些线下断网的CTF比赛中,大语言模型也可以作为一个能对话交互的高级知识检索…...

【C++红黑树应用】模拟实现STL中的map与set

目录 🚀 前言一: 🔥 红黑树的修改二: 🔥 红黑树的迭代器 三: 🔥 perator() 与 operator--() 四: 🔥 红黑树相关接口的改造✨ 4.1 Find 函数的改造✨ 4.2 Insert 函数的改…...

前端实习手计(5):班味十足?!

自我感觉没有班味!!!每天还是快快乐乐上班哇,是愉快的一周~这周没有太多活咯,基本就是修修改改改代码学习。真的感觉自己写的代码就是乱七八糟,只要能跑起来有效果就行(我不是合格的处女座哈哈哈…...

Duix AI 太上瘾,让我熬夜体验的AI女友

✨点击这里✨:🚀原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!) Duix AI 太上瘾,让我熬夜体验的AI女友 开启 Duix AI 女友的奇妙之旅_ Hi,这…...

php判断某个目录下是否存在文件

/*** 判断字符串是否以什么结尾* param String $haystack 字符串* param String $needle 结尾* return Boolean*/ function endWith($haystack, $needle) {$length strlen($needle);if ($length 0) {return true;}return (substr($haystack, -$length) $needle); } /***…...

重塑互联网生态:探索Web 3.0、大数据与隐私保护的新篇章

引言:互联网的新纪元 随着互联网技术的日新月异,我们正迈入一个全新的时代,其中Web 3.0、大数据以及隐私保护成为塑造未来互联网生态的三大核心力量。它们不仅改变了我们与互联网交互的方式,更深刻地影响着社会的方方面面。 Web…...

HR模块中PA信息类型的相关函数

目录 1、新增、删除,修改:HR_INFOTYPE_OPERATION新增:INS删除:DEL修改:MOD 2、读取PA信息类型:HR_READ_INFOTYPE3、入职,生成新工号用:HR_PAD_HIRE_EMPLOYEE4、加锁:BAPI…...

c# 日期类型变量默认值

DateTime类型是比较常用的变量类型,但是以前处理都比较业余,下面总结2中常用方式 这次把它总结下: DateTime t1 default(DateTime); DateTime t2 DateTime.MinValue; 这样t1,t2 的值都是 {0001/1/1 0:00:00} PS: 由于DateTi…...

设计模式实战:任务调度系统的设计与实现

问题描述 设计一个任务调度系统,支持任务的创建、调度、执行和状态管理。系统需要确保任务的执行过程可以被灵活调度,并且支持任务状态的跟踪和通知功能。 设计分析 命令模式 命令模式用于将请求封装成对象,从而使我们可以用不同的请求、队列或日志来参数化其他对象。任…...

代码中的特殊注释

代码中特殊注释——TODO、FIXME、XXX、HACK_fix me todo hack-CSDN博客 代码中特殊注释——TODO、FIXME、XXX、HACK TODO:英语翻译为待办事项,备忘录。如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会…...

ubuntu20.04.6 安装Skywalking 10.0.1

1.前置准备 1.1. **jdk17(Skywalking10 jdk22不兼容,用17版本即可)**安装: https://blog.csdn.net/CsethCRM/article/details/140768670 1.2. elasticsearch安装: https://blog.csdn.net/CsethCRM/article/details…...

C++:map和set

hello,各位小伙伴,本篇文章跟大家一起学习《C:map和set》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞!!…...

深入理解二叉搜索树:定义、操作及平衡二叉树

引言 二叉搜索树(Binary Search Tree,BST)是一种特殊的二叉树结构,每个节点的左子树节点值小于根节点值,而右子树节点值大于根节点值。二叉搜索树在计算机科学中有着广泛的应用,尤其在动态查找表和优先队列…...

vue3组件通信(二)

组件通信 一.$attrs(祖>孙间接)二、$refs()父>子, $parent()子>父三.provide,inject(祖>孙直接)四.pinia五.slot1.默认插槽2.具名插槽3.作用域插槽 一.$attrs(祖>孙间接) $attrs用于实现当前组件的父组…...

关键词查找【Boyer-Moore 算法】

1、【Boyer-Moore 算法】 【算法】哪种算法有分数复杂度?- BoyerMoore字符串匹配_哔哩哔哩_bilibili BM算法的精华就在于BM(text, pattern),也就是BM算法当不匹配的时候一次性可以跳过不止一个字符。即它不需要对被搜索的字符串中的字符进行逐一比较,而…...

【前端手写代码】手写Object.create

思路:将传入的对象作为原型 // 思路:将传入的对象作为原型 function create(obj) {function F() { }F.prototype objreturn new F() }...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解

文章目录 一、开启慢查询日志&#xff0c;定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...

算法刷题-回溯

今天给大家分享的还是一道关于dfs回溯的问题&#xff0c;对于这类问题大家还是要多刷和总结&#xff0c;总体难度还是偏大。 对于回溯问题有几个关键点&#xff1a; 1.首先对于这类回溯可以节点可以随机选择的问题&#xff0c;要做mian函数中循环调用dfs&#xff08;i&#x…...

Element-Plus:popconfirm与tooltip一起使用不生效?

你们好&#xff0c;我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip&#xff0c;产品要求是两个需要结合一起使用&#xff0c;也就是鼠标悬浮上去有提示文字&#xff0c;并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...

基于小程序老人监护管理系统源码数据库文档

摘 要 近年来&#xff0c;随着我国人口老龄化问题日益严重&#xff0c;独居和居住养老机构的的老年人数量越来越多。而随着老年人数量的逐步增长&#xff0c;随之而来的是日益突出的老年人问题&#xff0c;尤其是老年人的健康问题&#xff0c;尤其是老年人产生健康问题后&…...

java+webstock

maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】

1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...

华为云Flexus+DeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手

华为云FlexusDeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手 一、构建知识库问答助手引言二、构建知识库问答助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建知识库问答助手实战3.1 配置Dify环境3.2 创建知识库问答助手3.3 使用知…...