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);
相关推荐
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大2 分钟前
C++安全编程指南
开发语言·c++·算法
沛沛老爹3 分钟前
Web开发者实战:多模态Agent技能开发——语音交互与合成技能集成指南
java·开发语言·前端·人工智能·交互·skills
tianyuanwo3 分钟前
Python RPM打包的基石:深入理解 python3.x-rpm-macros 组件
开发语言·python·xx-rpm-macros
hjs_deeplearning3 分钟前
认知篇#15:ms-swift微调中gradient_accumulation_steps和warmup_ratio等参数的意义与设置
开发语言·人工智能·机器学习·swift·vlm
HeDongDong-4 分钟前
详解Kotlin的各种类(使用场景导向)
android·开发语言·kotlin
小屁猪qAq4 分钟前
C++预处理过程详解
开发语言·c++·预处理·编译
从此不归路7 分钟前
Qt5 进阶【8】数据库操作与数据访问层实战:用 Qt 搭一套好用的持久化“地基”
开发语言·c++·qt
浒畔居10 分钟前
C++中的状态模式实战
开发语言·c++·算法
naruto_lnq13 分钟前
C++中的状态模式
开发语言·c++·算法
Whisper_Sy8 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 网络状态实现
android·java·开发语言·javascript·网络·flutter·php