gpt4 book ai didi

c++ - 将使用 PIL 加载的图像转换为 Cimg 图像对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:40 29 4
gpt4 key购买 nike

我正在尝试转换使用 PIL 加载的图像到 Cimg 图像对象。我知道 Cimg 是一个 c++ 库,而 PIL 是一个 python 图像库。给定一个图像 url,我的目标是计算 pHash图像而不将其写入磁盘。 pHash 模块与 Cimg image object 配合使用它已在 C++ 中实现。所以我打算使用 python 扩展绑定(bind)将所需的图像数据从我的 python 程序发送到 c++ 程序。在下面的代码片段中,我从给定的 url 加载图像:

//python code sniplet   
import PIL.Image as pil

file = StringIO(urlopen(url).read())
img = pil.open(file).convert("RGB")

我需要构建的 Cimg 图像对象如下所示:

CImg  ( const t *const  values,  
const unsigned int size_x,
const unsigned int size_y = 1,
const unsigned int size_z = 1,
const unsigned int size_c = 1,
const bool is_shared = false
)

我可以使用 img.size 获取宽度 (size_x) 和高度 (size_y) 并将其传递给 C++。我不确定如何填写 Cimg 对象的“值”字段?使用什么样的数据结构将图像数据从 python 传递到 c++ 代码?

此外,还有其他方法可以将 PIL 图像转换为 Cimg 吗?

最佳答案

我假设您的主要应用程序是用 Python 编写的,并且您想从 Python 调用 C++ 代码。您可以通过创建一个“Python module”来实现这一点,它将所有 native C/C++ 功能公开给 Python。您可以使用 SWIG 等工具来简化您的工作。

这是我想到的解决您的问题的最佳方案。

关于c++ - 将使用 PIL 加载的图像转换为 Cimg 图像对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15307775/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com