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);
相关推荐
bjxiaxueliang13 小时前
一文详解Cpp多线程编程:从传统pthread到现代thread实践指南
java·开发语言·jvm
QQ_43766431413 小时前
C++11并发编程
开发语言·c++
week_泽13 小时前
1、OpenCV 特征检测入门笔记
人工智能·笔记·opencv
ergevv13 小时前
RK3588 上 OpenCV ROI 拷贝性能差异的根本原因与优化方案
opencv·计算机视觉·图像·image·clone·拷贝
leiming613 小时前
c++ 容器 queue
开发语言·c++
CSDN_RTKLIB13 小时前
【类定义系列三】内联函数进阶
开发语言·c++
北京流年14 小时前
执行clang --version报错说由于找不到 libgcc_s_seh-1.dll和 找不到 libstdc++-6.dll 这两个文件
开发语言·c++
weixin_4407305014 小时前
Java基础学习day01
java·开发语言·学习
军军君0114 小时前
Three.js基础功能学习一:环境资源及基础知识
开发语言·javascript·学习·3d·前端框架·threejs·三维
week_泽14 小时前
2、OpenCV Harris角点检测笔记
人工智能·笔记·opencv