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);
相关推荐
墨雨晨曦8811 分钟前
2026/01/20 java总结
java·开发语言
look ahead to20 分钟前
关于PYQT qt designer的网格布局 单控件占多行的处理
开发语言·qt·pyqt
王德博客20 分钟前
【C++继承】笔试易错题目
开发语言·c++·继承
卖个几把萌24 分钟前
解决 Python 项目依赖冲突:使用 pip-tools 一键生成现代化的 requirements.txt
开发语言·python·pip
lxs-25 分钟前
使用 OpenCV 进行图像识别:人脸与物体检测
人工智能·opencv·计算机视觉
黎雁·泠崖26 分钟前
Java字符串入门:API入门+String类核心
java·开发语言·python
MediaTea1 小时前
Python:MRO 解密 —— C3 线性化算法
java·开发语言
sunfove1 小时前
Python小游戏:在 2048 游戏中实现基于线性插值(Lerp)的平滑动画
开发语言·python·游戏
2501_944526421 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 抽牌游戏实现
android·开发语言·python·flutter·游戏
a程序小傲1 小时前
听说前端又死了?
开发语言·前端·mysql·算法·postgresql·深度优先