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);
相关推荐
Tony Bai6 小时前
高并发后端:坚守 Go,还是拥抱 Rust?
开发语言·后端·golang·rust
wjs20246 小时前
Swift 类型转换
开发语言
秃了也弱了。7 小时前
python实现定时任务:schedule库、APScheduler库
开发语言·python
weixin_440730507 小时前
java数组整理笔记
java·开发语言·笔记
Thera7777 小时前
状态机(State Machine)详解:原理、优缺点与 C++ 实战示例
开发语言·c++
niucloud-admin8 小时前
java服务端——controller控制器
java·开发语言
夏幻灵8 小时前
JAVA基础:基本数据类型和引用数据类型
java·开发语言
cike_y9 小时前
Spring-Bean的作用域&Bean的自动装配
java·开发语言·数据库·spring
十八度的天空9 小时前
第01节 Python的基础语法
开发语言·python
yue0089 小时前
C# 字符串倒序
开发语言·c#