将 numpy.ndarray 转换为 opencv cv::Mat
Converting numpy.ndarray into opencv cv::Mat
我有用于 C++ OpenCv 的 Boost-Python 接口。当我从 python:
调用 C++ 方法时出现此错误
Boost.Python.ArgumentError: Python argument types in
Vision.process(Vision, numpy.ndarray, numpy.ndarray)
did not match C++ signature:
process(python::vision::PythonVision {lvalue}, cv::Mat {lvalue}, cv::Mat {lvalue})
我正在使用 python cv2.so 模块。如何将 numpy.ndarray 转换为 cv::mat?
我使用了以下项目:https://github.com/Algomorph/pyboostcvconverter 并静态链接到它。
注意(避免分段错误):
1) PY_ARRAY_UNIQUE_SYMBOL 应该定义在 import_array 被调用的地方
在其他包含的地方,使用NO_IMPORT_ARRAY
#define PY_ARRAY_UNIQUE_SYMBOL PYVISION_ARRAY_API
#include <pyboostcvconverter/pyboostcvconverter.hpp>
2) 从 BOOST_PYTHON_MODULE
调用 init_ar
/**
* @brief Initialize Numpy Array
*/
static void init_ar( )
{
// initialize
Py_Initialize();
// defined in numpy
import_array();
}
我有用于 C++ OpenCv 的 Boost-Python 接口。当我从 python:
调用 C++ 方法时出现此错误Boost.Python.ArgumentError: Python argument types in
Vision.process(Vision, numpy.ndarray, numpy.ndarray)
did not match C++ signature:
process(python::vision::PythonVision {lvalue}, cv::Mat {lvalue}, cv::Mat {lvalue})
我正在使用 python cv2.so 模块。如何将 numpy.ndarray 转换为 cv::mat?
我使用了以下项目:https://github.com/Algomorph/pyboostcvconverter 并静态链接到它。
注意(避免分段错误):
1) PY_ARRAY_UNIQUE_SYMBOL 应该定义在 import_array 被调用的地方 在其他包含的地方,使用NO_IMPORT_ARRAY
#define PY_ARRAY_UNIQUE_SYMBOL PYVISION_ARRAY_API
#include <pyboostcvconverter/pyboostcvconverter.hpp>
2) 从 BOOST_PYTHON_MODULE
调用 init_ar/**
* @brief Initialize Numpy Array
*/
static void init_ar( )
{
// initialize
Py_Initialize();
// defined in numpy
import_array();
}