Конвертировать 3D-массив в C ++ в массив NumPy - PullRequest
0 голосов
/ 19 мая 2018
import numpy as np
from ctypes import *

cpp = CDLL('./Dll1.dll')
cMakeVolumeFunc = cpp.makeVolumeArray
cMakeVolumeFunc.restype = POINTER(POINTER(POINTER(c_ushort * nz)*ny)*nx)
vol_ptr= cMakeVolumeFunc()

print(cpp.getElement(10, 10, 10))
print(cpp.getElement(243, 234, 100))
print(cpp.getElement(355, 234, 100))

arr = (c_ushort * nz * ny * nx).from_address(addressof(vol_ptr.contents))
img = np.ndarray(buffer=arr, dtype=np.ushort, shape=(nz, ny, nx))

print(img.shape)
print(img[10][10][10])
print(img[243][234][100])
print(img[355][234][100])

Возвращаемый тип моей функции C ++ (makeVolumeArray) - беззнаковый короткий ***.Приведенные выше коды Python могут нормально выполняться, но значение каждого элемента массива numpy (img) является случайным.Может кто-нибудь сказать мне, как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...