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);
相关推荐
xyq20241 分钟前
Matplotlib 绘图线
开发语言
m0_694845575 分钟前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
春日见10 分钟前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
C++ 老炮儿的技术栈13 分钟前
VS2015 + Qt 实现图形化Hello World(详细步骤)
c语言·开发语言·c++·windows·qt
派葛穆20 分钟前
Python-批量安装依赖
开发语言·python
MSTcheng.32 分钟前
【C++】C++11新特性(二)
java·开发语言·c++·c++11
晓131335 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
愚者游世35 分钟前
Delegating Constructor(委托构造函数)各版本异同
开发语言·c++·程序人生·面试·改行学it
梵刹古音37 分钟前
【C语言】 指针基础与定义
c语言·开发语言·算法
Ekehlaft40 分钟前
这款国产 AI,让 Python 小白也能玩转编程
开发语言·人工智能·python·ai·aipy