【问题标题】:Passing a c++ vector to python and back将 c++ 向量传递给 python 并返回
【发布时间】:2014-09-18 04:05:25
【问题描述】:

我正在使用 c++ 代码对图像进行一些模拟。在某些时候,我需要标记图像簇,为此我想使用 python ndimage.label(因为它几乎比我的标记代码快 10 倍)。但是,我对 python 很陌生,不知道如何将参数(图像)从 C++ 传递给 python。搜索到现在没有结果

  1. 在C++代码中,图片存储为vector<vector<int>>
  2. python 代码需要图像为ndarray
  3. 我想再次将输出标记数组 (ndarray) 从 python 转换为 vector<vector<int>>

任何人都可以建议如何实现这一目标。首先,任何建议都可以,尽管计算时间对我来说是个大问题

【问题讨论】:

  • 在速度方面,每次我要标注时,在c++和python之间来回转换变量会有多少开销。从您的回复看来,该变量似乎是在 C++ 和 python 之间通过引用传递的

标签: python c++ python-2.7 numpy python-embedding


【解决方案1】:

您可以使用我的库 https://github.com/jzwinck/pccl/blob/master/NumPyArray.hpp 使用现有数据从 C++ 创建一个 NumPy 数组,例如从一个向量。在 Python 中所做的任何更改都将反映在 C++ 中。它依赖于 Boost.Python,但核心代码很简单,并且直接使用 NumPy C API,因此您也可以仅提取该部分(密钥为 PyArray_NewFromDescr)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多