UE配置opencv插件

1 篇文章 1 订阅

环境:Windows10+UE4.24.2+opencv3.4.9+vs2019

网上的教程版本比较旧,试了一遍,编译报错。

步骤1:创建OpenCV新插件。

打开UE->编辑->插件->新插件,选择第三方库,插件名称OpenCV,点击创建插件,会在项目的目录下创建一个Plugins/OpenCV文件。OpenCV目录下的文件如下图所示。

步骤2:文件拷贝。

在官网下载opencv并解压。

将opencv_world349.lib、opencv_world340d.lib、opencv_ffmpeg349_64.dll、opencv_world349.dll拷贝至.\Plugins\OpenCV\Binaries\ThirdParty\OpenCVLibrary\Win64\  目录下。

将opencv_world349.lib、opencv_world340d.lib、opencv_ffmpeg349_64.dll、opencv_world349.dll、opencv_world349.pdb、opencv_world349d.pdb拷贝至.\Plugins\OpenCV\Binaries\Win64目录下。

将解压后的include文件夹拷贝至.\Plugins\OpenCV\Binaries\ThirdParty目录下和.\Plugins\OpenCV\Source\ThirdParty\OpenCV目录下。

将解压后.\opencv\build\x64\vc15\lib和.\opencv\build\x64\vc15\bin里的文件(根据自己使用的cv14还是cv15找对应目录)拷到.\Plugins\OpenCV\Source\ThirdParty\OpenCV\OpenCVLibrary\x64\Release。

步骤3:更改OpenCV.Build.cs文件。

该文件位于.\Plugins\OpenCV\Source\OpenCV下。更改后如下:

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.IO;

public class OpenCV : ModuleRules
{
	private string ThirdPartyPath 
	{ 
		get 
		{ 
			return Path.GetFullPath(Path.Combine(ModuleDirectory, "../ThirdParty")); 
		} 
	}

	public OpenCV(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
		
		PublicIncludePaths.AddRange(
			new string[] {
				// ... add public include paths required here ...
			}
			);
				
		
		PrivateIncludePaths.AddRange(
			new string[] {
				// ... add other private include paths required here ...
			}
			);
			
		
		PublicDependencyModuleNames.AddRange(
			new string[]
			{
				"Core",
				"OpenCVLibrary",
				"Projects",
				"CoreUObject",
				"Engine",
				"InputCore",
				"OpenCV"
				// ... add other public dependencies that you statically link with here ...
			}
			);
			
		
		PrivateDependencyModuleNames.AddRange(
			new string[]
			{
				"CoreUObject",
				"Engine",
				"Slate",
				"SlateCore"
				// ... add private dependencies that you statically link with here ...	
			}
			);
		
		
		DynamicallyLoadedModuleNames.AddRange(
			new string[]
			{
				// ... add any modules that your module loads dynamically here ...
			}
			);
		string OpenCVPath = Path.Combine(ThirdPartyPath, "OpenCV");
		if (Target.Platform == UnrealTargetPlatform.Win64)//64位平台 
        {
			string OpenCVIncludePath = Path.Combine(OpenCVPath, "Include");
			string OpenCVLibPath = Path.Combine(OpenCVPath, "OpenCVLibrary", "x64", "Release");
			PublicIncludePaths.Add(OpenCVIncludePath);
			PublicLibraryPaths.Add(OpenCVLibPath);
			//Add Static Libraries
			PublicAdditionalLibraries.Add("opencv_world349.lib");
			PublicAdditionalLibraries.Add("opencv_world349d.lib");
			
			//Add Dynamic Libraries
			PublicDelayLoadDLLs.Add("opencv_world349.dll");
			PublicDelayLoadDLLs.Add("opencv_ffmpeg349_64.dll");
		}
		else if (Target.Platform == UnrealTargetPlatform.Win32)  //32位平台
        {
			//32位的OpenCV库,仿照上面Win64的自己填写 
		}
		else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
			//Mac
        }
	}
}

步骤4:更改包含目录。

选择项目->属性->C++目录->包含目录,添加include目录。

步骤5:编译。

在UE里编译看是否会报错。编译的时间可能会比较长,耐心等待。

 

以上就是配置全过程。下一篇将介绍如何在UE中基于C++调用opencv库,实现图像视频的处理。

参考:

https://www.jianshu.com/p/953fe8beee1f

资源:

只包含opencv的build文件,不包含source,请谨慎下载。(如资源不能下载,请联系我,将更新链接)也可到官网自行下载。

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值