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);
相关推荐
It's now18 分钟前
BeanRegistrar 的企业级应用场景及最佳实践
java·开发语言·spring
毕设源码-赖学姐25 分钟前
【开题答辩全过程】以 基于Java的小区物业管理系统APP的设计与实现为例,包含答辩的问题和答案
java·开发语言
繁华似锦respect27 分钟前
C++ & Linux 中 GDB 调试与内存泄漏检测详解
linux·c语言·开发语言·c++·windows·算法
小徐敲java37 分钟前
python的FastAPI框架
开发语言·python·fastapi
程序员Linc39 分钟前
OpenCV-python小玩意17 YOLO目标检测之环境安装
人工智能·opencv·yolo·目标检测
lsx20240641 分钟前
CSS3 分页设计指南
开发语言
CHANG_THE_WORLD1 小时前
Python 切片操作全面解析
开发语言·python
不会代码的小猴1 小时前
C++的第十二天笔记
开发语言·c++·笔记
Boop_wu1 小时前
[Java EE] 字符流和字节流实例
java·开发语言·apache
shangjian0071 小时前
Python基础-闭包和装饰器
开发语言·python