UE配置opencv插件

環境: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,請謹慎下載。(如資源不能下載,請聯繫我,將更新鏈接)也可到官網自行下載。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章