本文主要是介绍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);
这篇关于lua手动添加Opencv Mat对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!