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);
相关推荐
拓端研究室10 分钟前
专题:2025母婴行业洞察报告|附60+份报告PDF汇总下载
开发语言·人工智能·python
布呐呐na14 分钟前
C#基础篇(10)集合类之列表
开发语言·c#
Gq.xxu15 分钟前
RAG实战之dify源码文件解析-pdf文件解析流程
开发语言·python·pdf
lightqjx37 分钟前
【数据结构】复杂度分析
c语言·开发语言·数据结构·算法
程序员小白条2 小时前
我的第二份实习,学校附近,但是干前端!
java·开发语言·前端·数据结构·算法·职场和发展
钟琛......2 小时前
java中父类和子类的成员变量可以重名吗
java·开发语言
沐知全栈开发3 小时前
PHP 超级全局变量
开发语言
Deng9452013146 小时前
基于Python的职位画像系统设计与实现
开发语言·python·文本分析·自然语言处理nlp·scrapy框架·gensim应用
一只小青团8 小时前
Python之面向对象和类
java·开发语言
qq_529835359 小时前
ThreadLocal内存泄漏 强引用vs弱引用
java·开发语言·jvm