【发布时间】:2019-03-05 11:41:17
【问题描述】:
我有一个深度学习 python 代码,它获取图像并返回该图像中的检测位置数组。
我已经用 C++ 开发了我项目的所有其他部分,我想将一个 opencv Mat 图像 (cv::Mat) 传递给 python 脚本,它会将一个数组返回给 C++。
有没有办法在 C++/Python 之间传递这些数据类型?我应该使用什么功能?
【问题讨论】:
-
如果不是性能关键,最简单的方法就是将其存储在一个文件中并再次读取它
-
@user463035818 性能正是我的问题。
-
this 是您要找的吗?只需将指向数据的指针传递给您的 python 脚本并将其解压缩为结构。然后再次打包以将其传递回您的 C++ 应用程序。或者使用 Cython 将你的 python 脚本编译成 C 并尝试将其集成到你的代码中。如果性能真的很关键,另一种方法是完全在 C++ 或 Python 中完成,而不是混合使用。 Tensorflow 有一个 C++ API。
-
“有没有办法在 C++/Python 之间传递这些数据类型?” -- 当然,看看 OpenCV Python 绑定是如何工作的。 SO上有多个关于如何处理
Mat到ndarray的映射的帖子。还有 Boost.Numpy。