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);
相关推荐
xu_yule2 小时前
Linux_14(多线程)线程控制+C++多线程
java·开发语言·jvm
c***97982 小时前
PHP在内容管理中的模板引擎
开发语言·php
San30.3 小时前
深入理解 JavaScript 异步编程:从 Ajax 到 Promise
开发语言·javascript·ajax·promise
XIAOYU6720133 小时前
2026大专跨境电商专业,想好就业考哪些证书比较好?
开发语言
2301_764441333 小时前
Python构建输入法应用
开发语言·python·算法
emo了小猫3 小时前
Redis 执行 Lua 脚本过程中报错,会发生什么
redis·junit·lua
咨询QQ276998853 小时前
V-REP小车项目+匹配文档,基于V-REP与MATLAB联合仿真,小车能够完成循迹、避障、走...
开发语言
咩图3 小时前
C#创建AI项目
开发语言·人工智能·c#
深蓝海拓3 小时前
opencv的模板匹配(Template Matching)学习笔记
人工智能·opencv·计算机视觉