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);
相关推荐
fqbqrr18 小时前
2606C++,C++构的多态
开发语言·c++
biter down19 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
threelab21 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师7221 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴21 小时前
线程的生命周期之线程“插队“
java·开发语言·python
kaikaile199521 小时前
数字全息图处理系统(C# 实现)
开发语言·c#
秋91 天前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
huangdong_1 天前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
chase_my_dream1 天前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试