Godot4 C++ 嵌入Opencv

前言

使用GDExtension,可以很轻松的写godot4的c++插件,并且不需要编译引擎

强烈建议先观看官方文档:GDExtension C++ example — Godot Engine (4.0) documentation in English

跟着做可以让你实现最基础的GDExtension工程

下载OpenCV

首先,你需要从 OpenCV 官方网站 (Releases - OpenCV) 下载 OpenCV 库。选择最新版本并下载对应操作系统的二进制包。

SCons配置Opencv

1、把下载好的opencv放到gdextension_cpp_example文件夹中(跟着文档教程走)

2、在SConstruct 文件中添加以下语句,指定 OpenCV 库的安装路径:

# 设置OpenCV库的路径
opencv_dir = "C:/Users/yanyan/Desktop/gdextension_cpp_example/opencv/build"
# 添加OpenCV库的include路径
env.Append(CPPPATH=[os.path.join(opencv_dir, "include")])
if env["platform"] == "windows":
    env.Append(LIBPATH=[os.path.join(opencv_dir, "x64", "vc16", "lib")])
    env.Append(LINKFLAGS=["opencv_world470.lib"])
    print("已经导入opencv库:opencv_world470.lib")

这里注意,opencv_world470.lib对应opencv_world470.dll

opencv_world470d.lib对应opencv_world470d.dll

后面有d的是debug版本,如果编译之后闪退可能是用错了,可以换一下试试,并且最好管理员运行项目。

由于我们是下载的编译好的opencv版本,所以应该只有一个opencv_world,其他教程可能会有opencv_highgui、opencv_imgproc、opencv_core之类的东西,其实不用管,因为opencv_world都包含了。

3、手动把opencv_world470.dll复制到C:\Users\yanyan\Desktop\gdextension_cpp_example\demo\bin

这样项目运行时就能找到opencv的dll了

4、编译代码

使用cmd 输入scons platform=windows -j6

如果加上dev_build=yes则可以生成更多调试文件如pdb

注意你的gdexample.gdextension文件里面的

[configuration]

entry_symbol = "example_library_init"

[libraries]
windows.x86_64="res://bin/libgdexample.windows.template_debug.dev.x86_64.dll"

使用Opencv

#include <godot_cpp/variant/utility_functions.hpp>

#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>


void GDExample::createOpencv(const String &name) {
    UtilityFunctions::print("start");
    cv::Mat img = cv::imread("C:/Users/yanyan/Desktop/gdextension_cpp_example/demo/aaa.png", cv::IMREAD_COLOR);
    UtilityFunctions::print("zhongjian");
    if (img.empty()) {
        UtilityFunctions::print("Failed to load image");
    };
    cv::namedWindow("Image", cv::WINDOW_AUTOSIZE);
    cv::imshow("Image", img);
    cv::waitKey(0);
    UtilityFunctions::print("over");
}

猜你喜欢

转载自blog.csdn.net/u012863565/article/details/130661365
今日推荐