在C+中转换三维数组+;到numpy数组 返回的C++函数类型(MaKeGueMeRead)是无符号的短**。上面的Python代码可以正常运行,但每个numpy数组元素(img)的值都是随机的。谁能告诉我怎么解决这个问题吗 import

在C+中转换三维数组+;到numpy数组 返回的C++函数类型(MaKeGueMeRead)是无符号的短**。上面的Python代码可以正常运行,但每个numpy数组元素(img)的值都是随机的。谁能告诉我怎么解决这个问题吗 import ,python,c++,numpy,Python,C++,Numpy,在C+中转换三维数组+;到numpy数组 返回的C++函数类型(MaKeGueMeRead)是无符号的短**。上面的Python代码可以正常运行,但每个numpy数组元素(img)的值都是随机的。谁能告诉我怎么解决这个问题吗 import numpy as np from ctypes import * cpp = CDLL('./Dll1.dll') cMakeVolumeFunc = cpp.makeVolumeArray cMakeVolumeFunc.restype =

在C+中转换三维数组+;到numpy数组

返回的C++函数类型(MaKeGueMeRead)是无符号的短**。上面的Python代码可以正常运行,但每个numpy数组元素(img)的值都是随机的。谁能告诉我怎么解决这个问题吗

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])