【问题标题】:How can I integrate OpenCV C++ code with python code in Anaconda environment on Ubuntu 16.04?如何在 Ubuntu 16.04 的 Anaconda 环境中将 OpenCV C++ 代码与 python 代码集成?
【发布时间】:2017-03-02 00:55:11
【问题描述】:

我需要在我的主要编程语言是 Python 的项目的一部分中使用 ArUco C++ library。我无法在 Anaconda 环境中的系统上安装 python wrapper for ArUco。它只是抛出错误。所以我想我可以用 C++ 在 OpenCV 中安装和编写代码,并将结果传输到我的主要 Python 代码中。是否可以?

【问题讨论】:

标签: python c++ opencv anaconda wrapper


【解决方案1】:

您要检测 ArUco 制造商吗?如果是这样,您可以尝试使用包含ArUco marker detection (aruco module) 模块的contrib 模块的OpenCV 3.2。这个Aruco in opencv网页有python代码示例。

对于 Windows 32 位或 64 位平台上的 Python 3.5 或 3.6,您可以从此 site 获取带有 contrib 预构建二进制文件的 OpenCV3.2pip install {filename}.whl可以安装到Anaconda,因为conda install不支持whl文件。

【讨论】:

  • 谢谢。我在 Ubuntu 16.04 上使用 OpenCV 3.1 和 Python 3.5 进行了尝试。我收到此错误:AttributeError: module 'cv2.aruco' has no attribute 'getPredefinedDictionary'
  • 还有一个问题:我可以在现有环境中使用 OpenCV3.1 安装 OpenCV 3.2 吗?
  • 最好在安装 3.2 之前卸载 OpenCV 3.1 以避免任何问题。如果你是通过 conda 安装 3.1,它不会花费时间并且是直接的。
  • 我确实有 OpenCV3.1,也有 cv2.aruco(似乎)。由于上一条评论中的错误,我想到了安装 OpenCV3.2。
  • 我还没有测试过 cv2.aruco。明天有时间可以测试一下。对了,你用来安装 OpenCV 3.2 的 conda 命令是什么?
【解决方案2】:

你也可以使用boost python轻松用C++编写python函数!

http://www.boost.org/doc/libs/1_63_0/libs/python/doc/html/index.html

// non-compiling example:
namespace py = boost::python;
// you have access to all python builtins using the py:: namespace
py::list create_list(py::dict dictionary, py::tuple tuple);

为了很好地将 OpenCV 数据传入/传出 python,有 numpy 支持:

http://www.boost.org/doc/libs/1_63_0/libs/python/doc/html/numpy/tutorial/ndarray.html

// non-compiling example:
namespace np = boost::python::numpy;
np::ndarray modify_image(np::ndarray image);

不确定是否可以以某种方式直接使用opencv数据......可能是的。

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 2011-02-22
    相关资源
    最近更新 更多