我需要从指针地址获取USB相机帧(int
数组0-255值)
根据相机功能:
byte *BUFUSB_GetCurrentFrame(int deviceID, int FrameType, byte * &FramePtr );
我需要传递int deviceID
,int FrameType
和帧大小的指针(大小应该用Python编写)
该函数将返回地址指针,我需要从地址+帧大小读取帧。
帧大小为1280 * 1024 +56字节= 1310776 我写的功能:
def GetCurrentFrame(deviceID,FrameType):
Open=mightex.BUFUSB_GetCurrentFrame
Open.argtypes =[ctypes.c_int32,ctypes.c_int32,ctypes.POINTER(ctypes.c_byte)]
Open.restype = ctypes.POINTER(ctypes.c_byte)
Data=ctypes.c_byte(1310776)
array_pointer= Open(deviceID,FrameType,ctypes.byref(Data))
data_pointer = ctypes.cast(array_pointer,ctypes.POINTER(ctypes.c_int*1310776))
print np.frombuffer(data_pointer.contents)
来自头文件:
#define SDK_POINTER_API extern "C" __declspec(dllimport) unsigned char * _cdecl
SDK_POINTER_API BUFUSB_GetCurrentFrame( int FrameType, int deviceID, byte* &FramePtr );
根据相机制造商的说法: 它返回一个指针作为函数的返回值,它的第三个参数返回一个包含以下内容的内存块:
也许我应该传递内存块大小的内存块?
我的功能出了问题,它不起作用请协助