lua手动添加Opencv Mat对象

在lua的userdata中分配内存

使用c++的placement new 调用 Mat 类的构造函数,把对象分配在lua的userdata空间中

Mat的生命周期由lua虚拟机管理,跟随lua变量生命周期

复制代码
void createMat(const std::string& filename,Mat *result) {
	Mat img = cv::imread(filename, cv::IMREAD_COLOR);
	Mat* mat2 = new(result) Mat();
	*mat2 = img;
}

//在lua中申请内存
Mat* luaImage = static_cast<Mat*>(lua_newuserdata(L, sizeof(Mat)));
createMat(filename, luaImage);
相关推荐
郝学胜-神的一滴19 小时前
TCP通讯的艺术:从握手到挥手的优雅对话
开发语言·网络·网络协议·tcp/ip·程序人生
黎雁·泠崖20 小时前
【魔法森林冒险】12/14 场景系统:5大场景的任务串联
java·开发语言
l1t20 小时前
在python 3.14 容器中安装和使用chdb包
开发语言·python·clickhouse·chdb
梵刹古音20 小时前
【C++】函数重写
开发语言·c++
民国二十三画生20 小时前
C++(兼容 C 语言) 的标准输入语法,用来读取一行文本
c语言·开发语言·c++
社会零时工21 小时前
Ubuntu安装的OpenCV如何更换版本
linux·opencv·ubuntu
Codiggerworld21 小时前
从字节码到JVM:深入理解Java的“一次编写,到处运行”魔法
java·开发语言·jvm
禾叙_21 小时前
【netty】Channel
开发语言·javascript·ecmascript
云深处@21 小时前
【C++11】包装器,智能指针
开发语言·c++
量子炒饭大师21 小时前
【C++入门】Cyber深度漫游者的初始链路——【类与对象】初始化成员列表
开发语言·c++·dubbo·类与对象·初始化成员列表