UE4使用OpenCV插件调用电脑摄像头

使用的是UE4.27,参考两位大佬博客

https://blog.csdn.net/d137578736/article/details/79037849?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-79037849-blog-126785890.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-79037849-blog-126785890.pc_relevant_vip_default&utm_relevant_index=2

https://blog.csdn.net/Accepted_10086/article/details/126785890

讲的很详细,但是遇到了一些问题。

1 创建UE4.27工程

选择创建C++类。

2 下载OpenCV插件。

插件参考第二个大佬博客。

将下载的三个文件复制到工程文件夹下。

关闭打开的UE项目和VS,右键uproject文件。选择第三个,生成VS项目文件。

3 修改OpenCV代码

双击.sln文件,打开项目,在Source->项目名下,找到项目名.build.cs文件。

在文件开头加

using System.IO;

在类中public前面加

private string ThirdPartyPath

{

get

{

return Path.GetFullPath(Path.Combine(ModuleDirectory, "../../ThirdParty"));

}

}

在注释后面加

string OpenCVPath = Path.Combine(ThirdPartyPath, "OpenCV/");

PublicIncludePaths.AddRange(new string[]

{

Path.Combine(OpenCVPath,"Includes")

});

PublicLibraryPaths.Add(Path.Combine(OpenCVPath, "Libraries/Win64"));

整体代码如下:

// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;

using System.IO;

public class test_opencv : ModuleRules

{

private string ThirdPartyPath

{

get

{

return Path.GetFullPath(Path.Combine(ModuleDirectory, "../../ThirdParty"));

}

}

public test_opencv(ReadOnlyTargetRules Target) : base(Target)

{

PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

PrivateDependencyModuleNames.AddRange(new string[] { });

// Uncomment if you are using Slate UI

// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

// Uncomment if you are using online features

// PrivateDependencyModuleNames.Add("OnlineSubsystem");

// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true

string OpenCVPath = Path.Combine(ThirdPartyPath, "OpenCV/");

PublicIncludePaths.AddRange(new string[]

{

Path.Combine(OpenCVPath,"Includes")

});

PublicLibraryPaths.Add(Path.Combine(OpenCVPath, "Libraries/Win64"));

}

}

然后右键项目,生成。编译成功。

然后调试 打开UE4,在编辑-插件中可以搜索OpenCV可以看到插件添加成功!(没有启用记得启用!)

4 创建材质及蓝图

新手包如下

打开Texture搜索T_Ceramic_Tile_M,找到后右键创建材质,命名为M_WebCam双击打开。

断开所有连线,然后连接到自发光颜色,然后右键材质选择第三个,修改名字为Video Texture。再选中右边的材质设置为

保存退出后,进入蓝图文件夹,添加一个蓝图类,选择webcamReader。

双击打开蓝图后,添加组件,选择平台,会生成一个Plane组件

右键 组件,选择变量,添加

变量设置为

然后右键添加事件和实例,设置等,完成后如下图。

因为我是UE小白,添加这些都是自己根据博客琢磨。右键点击然后搜索,慢慢来。例如创建动态材质实例,在添加Plane组件后,右键搜索,然后添加就好。

最后将蓝图保存,拖到场景中运行就能看到效果。

查看原文