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);
相关推荐
fantasy_arch2 分钟前
BasicVSR-lite图像画质增强
开发语言·pytorch
Rust语言中文社区23 分钟前
【Rust日报】2026-05-24 Secluso v1.0.2 版本发布
开发语言·后端·rust
吃好睡好便好1 小时前
矩阵的加减运算
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
吃好睡好便好1 小时前
提取矩阵特定多行元素
开发语言·线性代数·算法·matlab·矩阵
Mister西泽1 小时前
C++ Primer Plus 第六版 编程练习题及详细答案
开发语言·c++·学习·visual studio
froginwe111 小时前
Python 循环嵌套
开发语言
@大迁世界2 小时前
AI还替不了的JS能力
开发语言·前端·javascript·人工智能·ecmascript
ZJH__GO2 小时前
java项目-流水线线程池
java·开发语言
放逐者-保持本心,方可放逐2 小时前
Go + WebAssembly 构建树木数据统计分析系统
开发语言·golang·wasm·javascipt
ftpeak2 小时前
深入浅出 LoongSuite Python Agent:让你的 AI 应用「透明化」(下篇)
开发语言·人工智能·ai·ai编程·ai开发