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);
相关推荐
小豪GO!18 分钟前
Java多线程初阶
java·开发语言
码农秋20 分钟前
Java Optional 最佳实践:从入门到精通的完整指南
java·开发语言·optional
星期天要睡觉44 分钟前
(纯新手教学)计算机视觉(opencv)实战十——轮廓特征(轮廓面积、 轮廓周长、外接圆与外接矩形)
人工智能·opencv·计算机视觉
三水彡彡彡彡1 小时前
Java中使用正则表达式的正确打开方式
java·开发语言·正则表达式
深耕AI2 小时前
【MFC教程】C++基础:01 小黑框跑起来
开发语言·c++·mfc
@HXH2 小时前
LeetCode第二题知识点2 ---- 栈、堆、地址
java·开发语言
Source.Liu2 小时前
【Rust】 2. 数据类型笔记
开发语言·笔记·rust
草莓熊Lotso3 小时前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day16
c语言·开发语言·经验分享·算法·强化
yzx9910133 小时前
使用Python和GitHub构建京东数据自动化采集项目
c语言·开发语言·人工智能·python
yannan201903133 小时前
【Python】QT(PySide2、PyQt5):Qt Designer,VS Code使用designer,可能的报错
开发语言·python·qt