我想將使用PIL加載的圖像轉換爲Cimg圖像對象。我知道Cimg是一個C++庫,PIL是一個python圖像庫。給定一個圖像URL,我的目標是計算圖像的pHash而不寫入磁盤。 pHash模塊與Cimg image object協同工作,並已在C++中實施。所以我打算將所需的圖像數據從我的python程序發送到使用python擴展綁定的C++程序。在下面的代碼sniplet,我從給定的URL加載圖像:將使用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
)
我可以得到的寬度(size_x )和高度(size_y)使用img.size並可以傳遞給C++。我不確定如何填充Cimg對象的「值」字段?用什麼樣的數據結構將圖像數據從python傳遞到C++代碼?
此外,是否有任何其他方式將PIL圖像轉換爲Cimg?
感謝您的回覆。我一直在嘗試使用你提到的python擴展模塊。我不確定要爲圖像數據傳遞什麼。我的問題的第二部分是「我不確定如何填充Cimg對象的」值「字段」。我可以直接將我下載的圖像數據直接用於Cimg結構中的'value'變量嗎? – 2013-03-11 05:12:24