在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);