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);
相关推荐
Rust语言中文社区几秒前
【Rust日报】 Danube Messaging - 云原生消息平台
开发语言·后端·rust
kaikaile19954 分钟前
微电网两阶段鲁棒优化经济调度MATLAB实现
开发语言·matlab
liuyao_xianhui5 分钟前
优选算法_栈_删除字符中的所有相邻重复项_C++
开发语言·数据结构·c++·python·算法·leetcode·链表
逝水如流年轻往返染尘8 分钟前
JAVA中的内部类
java·开发语言
always_TT13 分钟前
C语言中的布尔值:_Bool与stdbool.h
c语言·开发语言
寂静or沉默21 分钟前
Java程序员技术面试:如何清晰描述项目难点?逻辑模板!Java的原因与解决方案最新发布!
java·开发语言·面试
Z.风止25 分钟前
Large Model-learning(1)
开发语言·笔记·git·python·学习
Sgf22738 分钟前
第15章 网络编程
开发语言·网络·php
Ares-Wang1 小时前
Python》》FastAPI 异步框架 接口 pymysql【同步】 aiomysql【异步】
开发语言·python·fastapi
阿里嘎多学长1 小时前
2026-03-27 GitHub 热点项目精选
开发语言·程序员·github·代码托管