各位小伙伴,今天给大家分享在Ubuntu18.04上将opencv集成到UE4中,目前网上的大部分都是基于windows的opencv插件进行集成,而linux平台的的比较少,今天就给大家分享以下,如果觉得有用的画还请动动你的小手点个赞收藏关注以下,你的支持就是我分享创作的动力。
1 准备
系统:ubuntu18.04 cuda11.1 Opencv4.4.0 UnrealEngine-4.26
设备:ZED相机
2 环境搭建
2.1 创建项目
1.启动UE4
cd UnrealEngine-4.26
bash run.sh #启动脚本
=====================
#! /bin/bash
cd Engine/Binaries/Linux && ./UE4Editor
=====================
2.创建蓝图项目
a).选择游戏-》空白-》蓝图创建项目
b).在文件-》创建c++类
c).vscode 查看代码如下图
2.2 集成Opencv库
1.将编译好的opencv库拷贝到项目
cd opencv_ue
mkdir -p ThirdParty/include
mkdir -p ThirdParty/lib/linux
# 用于编译
cp -d opencv-4.4.0/build/lib/* ThirdParty/lib/linux -rf
cp /usr/local/include/opencv4 ThirdParty/include -rf
# 修改lib库的名字
先删除所有的软链接如.so, .so.4.4
rename 's/\.so.4.4.0/\.so/' libopencv* #批量修改后缀名
2.将编译好的opencv库拷贝到UE引擎
cp opencv-4.4.0/build/lib/* UnrealEngine-4.26/Engine/Binaries/Linux -rf
#修改后缀名
先删除所有的软链接如.so, .so.4.4
rename 's/\.so.4.4.0/\.so.4.4/' libopencv* #批量修改后缀名
2.3 编写代码
1.修改opencv_ue.Build.cs文件
// Fill out your copyright notice in the Description page of Project Settings.
using System.IO;
using UnrealBuildTool;
public class opencv_ue : ModuleRules
{
private string ThirdPartyPath
{
get { return Path.GetFullPath(Path.Combine(ModuleDirectory, "../../ThirdParty/")); }
}
public opencv_ue(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "RHI", "RenderCore"});
PrivateDependencyModuleNames.AddRange(new string[] { });
LoadThirdParty(Target);
}
public bool LoadThirdParty(ReadOnlyTargetRules Target)
{
// Start linking here!
bool isLibrarySupported = false;
// Get Library Path
string LibPath &