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);
相关推荐
编程有点难42 分钟前
Python训练打卡Day16
开发语言·python
why15144 分钟前
百度golang开发一面
开发语言·网络·后端·golang
黄雪超2 小时前
JVM——JVM 是如何处理异常的?
java·开发语言·jvm
星火撩猿6 小时前
OpenCv实战笔记(1)在win11搭建opencv4.11.1 + qt5.15.2 + vs2019_x64开发环境
笔记·qt·opencv
先鱼鲨生7 小时前
【Qt】初识Qt
开发语言·qt
chao_7898 小时前
QT开发工具对比:Qt Creator、Qt Designer、Qt Design Studio
开发语言·qt
大飞pkz9 小时前
【Unity】使用XLua进行热修复
unity·c#·游戏引擎·lua·游戏开发·xlua·lua热修复
珊瑚里的鱼10 小时前
LeetCode 102题解 | 二叉树的层序遍历
开发语言·c++·笔记·算法·leetcode·职场和发展·stl
码上飞扬10 小时前
Java大师成长计划之第12天:性能调优与GC原理
java·开发语言
Wabi_sabi_x10 小时前
C++设计模式:面向对象的八大设计原则之一
开发语言·c++·设计模式