我正在尝试将使用PIL加载的图像转换为Cimg图像对象。我知道Cimg是一个C++库,而PIL是一个Python图像处理库。给定一个图像URL,我的目标是在不将其写入磁盘的情况下计算图像的pHash。pHash模块与Cimg图像对象一起使用,并已在C++中实现。因此,我计划使用Python扩展绑定从我的Python程序向C++程序发送所需的图像数据。在以下代码片段中,我正在从给定的URL加载图像:
我需要构建的Cimg图像对象如下所示:
我可以使用img.size获取宽度(size_x)和高度(size_y),并将其传递给C++。我不确定如何填写Cimg对象的“values”字段?应该使用什么样的数据结构将图像数据从Python传递到C++代码中?
此外,是否有其他方法将PIL图像转换为Cimg?
//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对象的“values”字段?应该使用什么样的数据结构将图像数据从Python传递到C++代码中?
此外,是否有其他方法将PIL图像转换为Cimg?