我在提供纯 C 接口的 DLL 中使用 OpenCV,不允许将 C++ 对象移交给调用应用程序。
该 DLL 的一部分为以后的模式识别执行基准学习,从而产生一个关键点列表和一个 Mat 对象。这些数据必须由调用应用程序存储。
使用普通的 C 结构通过 DLL 接口传递关键点是没有问题的,这样的关键点的成员可以很容易地转换。但我看不出真正需要 cv::Mat 的哪些部分。或者更准确地说:我的 Mat 对象使用指向内存区域的成员“数据”,但我不知道包含多少数据。
所以我的问题是:如何将 cv::Mat 对象转换为普通的 C 风格结构,如何估计数据字段的确切长度?
谢谢!