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);
相关推荐
工程师00714 小时前
C#中的AutoUpdater自动更新类
开发语言·c#·自动更新开源库·autoupdate
lsx20240614 小时前
Java 泛型
开发语言
jghhh0115 小时前
基于MATLAB的可见光通信系统仿真实现
开发语言·matlab
xiaoqider15 小时前
C++模板进阶
开发语言·c++
yaonoran15 小时前
【无标题】
java·开发语言·变量
康小庄15 小时前
浅谈Java中的volatile关键字
java·开发语言·jvm·spring boot·spring·jetty
移幻漂流15 小时前
C/C++并发编程详解:如何写出优秀的并发程序
c语言·开发语言·c++
余醉 | dtminer15 小时前
R语言常见新手问题
开发语言·r语言
それども15 小时前
为什么要加@ResponseBody
java·开发语言·spring boot
一只专注api接口开发的技术猿15 小时前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构