【问题标题】:Any way to pass an image loaded from PIL to a C++ function using Boost.Python?有什么方法可以使用 Boost.Python 将从 PIL 加载的图像传递给 C++ 函数?
【发布时间】:2010-12-22 06:16:01
【问题描述】:

我正在尝试制作一个包装器以在 Python 中使用 C++ 类,但我找不到传递已在 Python 程序中加载的图像的方法。

我可以传递图像的路径并再次将其加载到 C++ 函数中,但这不是我想要的解决方案。

【问题讨论】:

    标签: c++ python boost python-imaging-library boost-python


    【解决方案1】:

    “这不是我想要的解决方案。”

    为什么不呢?

    无论如何,C++ 不会理解 Image 对象。它更有可能只需要原始图像数据。您可以通过在图像对象上调用 tostring() 方法,传入编码器和参数来获得它。

    但是直接读取文件会快很多。

    http://effbot.org/imagingbook/image.htm

    【讨论】:

    • 我考虑过传递 tostring() 的结果,但后来我必须找到一种方法来自己转换它。似乎不值得麻烦。
    • @lpl:“转换”?到什么?仍然没有回答为什么。如果你不说出原因,你将得不到有用的答案。您很可能问错了问题。
    • @Lennart:我也在尝试这样做。我正在尝试将图像对象从 python 传递到 C++。我将 PIL 对象(Python)转换为 Cimg 对象(C++)以传递它。我正在开发一个程序,我需要计算 URL 指向的图像的哈希值,然后与现有的哈希值(可能是数百万)进行比较。再次从 URL 读取文件会使事情变慢。我想节省再次加载它的时间。 lpl:你找到解决办法了吗?
    • @ShobhitPuri:您知道您不需要 PIL 从 URL 加载图像数据,对吧?您可以只加载文件数据并对其进行哈希处理。从本质上讲,这个问题没有真正的意义。开始一个新问题,并解释您要实现的目标
    • @Lennart 感谢您的回复。我明白那个。我需要 PIL 对 Python 中的图像进行进一步操作。你是对的,我需要更具体。我将开始一个新问题。
    猜你喜欢
    • 2010-09-09
    • 2020-10-27
    • 1970-01-01
    • 2020-04-29
    • 2015-12-01
    • 1970-01-01
    • 2011-12-12
    • 2019-12-14
    • 2011-11-29
    相关资源
    最近更新 更多