Я пытаюсь преобразовать iamge, загруженный с помощью PIL, в образ Cimg объект. Я понимаю, что Cimg — это библиотека C++, а PIL — библиотека изображений Python. Учитывая URL-адрес изображения, моя цель — вычислить pHash изображения, не записывая его на диск. Модуль pHash работает с 1CImg.html" rel="nofollow noreferrer">объектом изображения Cimg и реализован на C++. Поэтому я планирую отправить необходимые данные изображения из моей программы на Python в программу на С++, используя привязку расширения Python. В следующем фрагменте кода я загружаю изображение с заданного 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
)
Я могу получить ширину (size_x) и высоту (size_y) с помощью img.size и передать их на С++. Я не уверен, как заполнить поле «значения» объекта Cimg? Какую структуру данных использовать для передачи данных изображения из кода python в код C++?
Кроме того, есть ли другой способ преобразовать образ PIL в Cimg?