|
|
|
|
@ -0,0 +1,818 @@
|
|
|
|
|
# -- coding: utf-8 --
|
|
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
import copy
|
|
|
|
|
import ctypes
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
from ctypes import *
|
|
|
|
|
|
|
|
|
|
# ch: python3.8及相关版本可以指定如下路径的库 | en: python3.8 and related versions can specify libraries for the following paths
|
|
|
|
|
# os.add_dll_directory("C:\Program Files (x86)\Common Files\MV3D\Runtime\Win64_x64")
|
|
|
|
|
# os.add_dll_directory("C:\Program Files (x86)\Common Files\Mv3dRgbdSDK\Runtime\Win64_x64")
|
|
|
|
|
# 动态加载 SDK 路径
|
|
|
|
|
current_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
|
sdk_path_1 = os.path.join(current_dir, "dlls", "MV3D", "Win64_x64")
|
|
|
|
|
sdk_path_2 = os.path.join(current_dir, "dlls", "Mv3dRgbdSDK", "Win64_x64")
|
|
|
|
|
|
|
|
|
|
os.add_dll_directory(sdk_path_1)
|
|
|
|
|
os.add_dll_directory(sdk_path_2)
|
|
|
|
|
Mv3dRgbdDll = ctypes.WinDLL("Mv3dRgbd.dll")
|
|
|
|
|
|
|
|
|
|
class Mv3dRgbd():
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self._handle = c_void_p() #~chinese 记录当前连接设备的句柄 ~english Records the handle of the currently connected device
|
|
|
|
|
self.handle = pointer(self._handle) #~chinese 创建句柄指针 ~english Create pointer of handle
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 获取SDK版本号
|
|
|
|
|
# param pstVersion [OUT] 版本信息
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief Get SDK Version
|
|
|
|
|
# param pstVersion [OUT] version info
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_GetSDKVersion(pstVersion):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetSDKVersion.argtype = c_void_p
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetSDKVersion.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetSDKVersion(MV3D_RGBD_VERSION_INFO* pstVersion);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetSDKVersion(pstVersion)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief SDK运行环境初始化
|
|
|
|
|
# param
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief SDK run environment initialization
|
|
|
|
|
# param
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_Initialize():
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Initialize.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Initialize();
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_Initialize()
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief SDK运行环境释放
|
|
|
|
|
# param
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief SDK run environment release
|
|
|
|
|
# param
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_Release():
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Release.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Release();
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_Release()
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 获取当前环境中设备数量
|
|
|
|
|
# param nDeviceType [IN] 设备类型,见Mv3dRgbdDeviceType,可全部获取(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
|
|
|
|
|
# param pDeviceNumber [OUT] 设备数量
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief gets the number of devices in the current environment
|
|
|
|
|
# param nDeviceType [IN] device type,refer to Mv3dRgbdDeviceType,get all(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
|
|
|
|
|
# param pDeviceNumber [OUT] device number
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_GetDeviceNumber(nDeviceType, pDeviceNumber):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetDeviceNumber.argtype = (c_uint, c_char_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetDeviceNumber.restype = c_uint
|
|
|
|
|
# C原型:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetDeviceNumber(uint32_t nDeviceType, uint32_t* pDeviceNumber);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetDeviceNumber(nDeviceType, pDeviceNumber)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 获取设备列表
|
|
|
|
|
# param nDeviceType [IN] 设备类型,见Mv3dRgbdDeviceType,可全部获取(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
|
|
|
|
|
# param pstDeviceInfos [IN OUT] 设备列表
|
|
|
|
|
# param nMaxDeviceCount [IN] 设备列表缓存最大个数
|
|
|
|
|
# param pDeviceCount [OUT] 填充列表中设备个数
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief gets 3D cameras list
|
|
|
|
|
# param nDeviceType [IN] device type,refer to Mv3dRgbdDeviceType,get all(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
|
|
|
|
|
# param pstDeviceInfos [IN OUT] devices list
|
|
|
|
|
# param nMaxDeviceCount [IN] max Number of device list caches
|
|
|
|
|
# param pDeviceCount [OUT] number of devices in the fill list
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_GetDeviceList(nDeviceType, pstDeviceInfos, nMaxDeviceCount, pDeviceNumber):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetDeviceList.argtype = (c_uint, c_char_p, c_uint, c_char_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetDeviceList.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetDeviceList(uint32_t nDeviceType, MV3D_RGBD_DEVICE_INFO* pstDeviceInfos, uint32_t nMaxDeviceCount, uint32_t* pDeviceCount);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetDeviceList(nDeviceType, pstDeviceInfos, nMaxDeviceCount, pDeviceNumber)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 打开设备
|
|
|
|
|
# param self.handle [IN OUT] 相机句柄
|
|
|
|
|
# param pstDeviceInfo [IN] 枚举的设备信息,默认为空,打开第一个相机
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief open device
|
|
|
|
|
# param self.handle [IN OUT] camera handle
|
|
|
|
|
# param pstDeviceInfo [IN] enum camera info. the default is null, open first camera
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_OpenDevice(self, pstDeviceInfo):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDevice.argtype = (c_char_p, c_char_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDevice.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDevice(HANDLE *handle, MV3D_RGBD_DEVICE_INFO* pstDeviceInfo = NULL);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_OpenDevice(byref(self.handle), pstDeviceInfo)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 通过设备设备自定义打开设备
|
|
|
|
|
# param self.handle [IN OUT] 相机句柄
|
|
|
|
|
# param chDeviceName [IN] 设备用户自定义名称
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief open device by device user defined name
|
|
|
|
|
# param self.handle [IN OUT] camera handle
|
|
|
|
|
# param chDeviceName [IN] device user defined name
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_OpenDeviceByName(self, chDeviceName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDeviceByName.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDeviceByName.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDeviceByName(HANDLE *handle, const char* chDeviceName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_OpenDeviceByName(byref(self.handle), chDeviceName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 通过序列号打开设备
|
|
|
|
|
# param self.handle [IN OUT] 相机句柄
|
|
|
|
|
# param chSerialNumber [IN] 序列号
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief open device by serial number
|
|
|
|
|
# param self.handle [IN OUT] camera handle
|
|
|
|
|
# param chSerialNumber [IN] serial number
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_OpenDeviceBySerialNumber(self, chSerialNumber):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDeviceBySerialNumber.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDeviceBySerialNumber.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDeviceBySerialNumber(HANDLE *handle, const char* chSerialNumber);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_OpenDeviceBySerialNumber(byref(self.handle), chSerialNumber.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 通过IP打开设备,仅网口设备有效
|
|
|
|
|
# param self.handle [IN OUT] 相机句柄
|
|
|
|
|
# param chIP [IN] IP地址,例如"10.114.71.116"
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief open device by ip,only network device is valid
|
|
|
|
|
# param self.handle [IN OUT] camera handle
|
|
|
|
|
# param chIP [IN] IP, for example, "10.114.71.116"
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_OpenDeviceByIp(self, chIP):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDeviceByIp.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_OpenDeviceByIp.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDeviceByIp(HANDLE *handle, const char* chIP);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_OpenDeviceByIp(byref(self.handle), chIP.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_CloseDevice(self):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_CloseDevice.argtype = c_void_p
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_CloseDevice.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_CloseDevice(HANDLE *handle);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_CloseDevice(byref(self.handle))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 获取当前设备的详细信息
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# param pstDevInfo [IN][OUT] 返回给调用者有关相机设备信息结构体指针
|
|
|
|
|
# return 成功,MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief get current device information
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# param pstDevInfo [IN][OUT] structure pointer of device information
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_GetDeviceInfo(self, pstDevInfo):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetDeviceInfo.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetDeviceInfo.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetDeviceInfo(HANDLE handle, MV3D_RGBD_DEVICE_INFO* pstDevInfo);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetDeviceInfo(self.handle, pstDevInfo)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 配置IP,仅网口设备有效
|
|
|
|
|
# param chSerialNumber [IN] 序列号
|
|
|
|
|
# param pstIPConfig [IN] IP配置,静态IP,DHCP等
|
|
|
|
|
# return 成功,MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief ip configuration,only network device is valid
|
|
|
|
|
# param chSerialNumber [IN] serial number
|
|
|
|
|
# param pstIPConfig [IN] ip config, static ip,DHCP
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_SetIpConfig(chSerialNumber, pstIPConfig):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SetIpConfig.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SetIpConfig.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SetIpConfig(const char* chSerialNumber, MV3D_RGBD_IP_CONFIG* pstIPConfig);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SetIpConfig(chSerialNumber, pstIPConfig)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 注册图像数据回调
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# param cbOutput [IN] 回调函数指针
|
|
|
|
|
# param pUser [IN] 用户自定义变量
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief register image data callback
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# param cbOutput [IN] callback function pointer
|
|
|
|
|
# param pUser [IN] user defined variable
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_RegisterFrameCallBack(self, cbOutput, pUser):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_RegisterFrameCallBack.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_RegisterFrameCallBack.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_RegisterFrameCallBack(HANDLE handle, MV3D_RGBD_FrameDataCallBack cbOutput, void* pUser);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_RegisterFrameCallBack(self.handle, cbOutput, pUser)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 注册异常消息回调
|
|
|
|
|
# param self.handle: [IN] 相机句柄
|
|
|
|
|
# param cbException [IN] 异常回调函数指针
|
|
|
|
|
# param pUser [IN] 用户自定义变量
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief register exception message callBack
|
|
|
|
|
# param self.handle: [IN] camera handle
|
|
|
|
|
# param cbException [IN] exception message callBack function pointer
|
|
|
|
|
# param pUser [IN] user defined variable
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_RegisterExceptionCallBack(self, cbException, pUser):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_RegisterExceptionCallBack.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_RegisterExceptionCallBack.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_RegisterExceptionCallBack(HANDLE handle, MV3D_RGBD_ExceptionCallBack cbException, void* pUser);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_RegisterExceptionCallBack(self.handle, cbException, pUser)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 开始取流前获取数据流配置列表
|
|
|
|
|
# param self.handle: [IN] 相机句柄
|
|
|
|
|
# param pstStreamCfgList [IN] 返回给调用者数据流配置列表指针
|
|
|
|
|
# return 成功,MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief get stream cfg list before start working
|
|
|
|
|
# param self.handle: [IN] camera handle
|
|
|
|
|
# param pstStreamCfgList [IN] structure pointer of stream cfg list
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_GetStreamCfgList(self, pstStreamCfgList):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetStreamCfgList.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetStreamCfgList.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetStreamCfgList(HANDLE handle, MV3D_RGBD_STREAM_CFG_LIST* pstStreamCfgList);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetStreamCfgList(self.handle, pstStreamCfgList)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 开始工作
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief start working
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_Start(self):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Start.argtype = c_void_p
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Start.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Start(HANDLE handle);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_Start(self.handle)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 停止工作
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief stop working
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_Stop(self):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Stop.argtype = c_void_p
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Stop.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Stop(HANDLE handle);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_Stop(self.handle)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 轮询方式获取帧数据
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# param pstFrameData [IN][OUT] 数据指针
|
|
|
|
|
# param nTimeOut [IN] 超时时间(单位:毫秒)
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief fetch frame data
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# param pstFrameData [IN][OUT] data set pointer
|
|
|
|
|
# param nTimeOut [IN] timevalue(Unit: ms)
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_FetchFrame(self, pstFrameData, nTimeOut):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_FetchFrame.argtype = (c_void_p, c_void_p, c_uint)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_FetchFrame.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_FetchFrame(HANDLE handle, MV3D_RGBD_FRAME_DATA* pstFrameData, uint32_t nTimeOut);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_FetchFrame(self.handle, pstFrameData, nTimeOut)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 执行设备软触发
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
# remark 设置触发模式为打开,设置触发源为软触发并执行,软触发得到的图像帧包含触发id
|
|
|
|
|
|
|
|
|
|
# brief execute camera soft trigger
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
# remark Set trigger mode to open, trigger source to software, and excute soft trigger. The image frame obtained by soft trigger contains the trigger id
|
|
|
|
|
def MV3D_RGBD_SoftTrigger(self):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SoftTrigger.argtype = c_void_p
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SoftTrigger.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SoftTrigger(HANDLE handle);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SoftTrigger(self.handle)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 执行带触发ID的设备软触发
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# param nTriggerId [IN] 触发ID
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
# remark 设置触发模式为打开,设置触发源为软触发并执行,软触发得到的图像帧包含触发id。
|
|
|
|
|
# 通过对比输入的触发id参数与图像帧返回的触发id,判断当前帧是否有效
|
|
|
|
|
|
|
|
|
|
# brief execute camera soft trigger with trigger id
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# param nTriggerId [IN] trigger id
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
# remark Set trigger mode to open, trigger source to software, and excute soft trigger. The image frame obtained by soft trigger contains the trigger id.
|
|
|
|
|
# Compare the input trigger id parameter with the returned trigger id to determine whether the current frame is valid
|
|
|
|
|
def MV3D_RGBD_SoftTriggerEx(self, nTriggerId):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SoftTriggerEx.argtype = (c_void_p, c_uint)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SoftTriggerEx.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SoftTriggerEx(HANDLE handle, uint32_t nTriggerId);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SoftTriggerEx(self.handle, nTriggerId)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 执行设备Command命令
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# param strKey [IN] 属性键值
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief execute camera command
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# param strKey [IN] key value
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_Execute(self, strKey):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Execute.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_Execute.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Execute(HANDLE handle, const char* strKey);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_Execute(self.handle, strKey.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 获取相机当前标定信息
|
|
|
|
|
# param self.handle [IN] 相机句柄
|
|
|
|
|
# param nCoordinateType [IN] 坐标系类型,见Mv3dRgbdCoordinateType
|
|
|
|
|
# param pstCalibInfo [IN][OUT] 输出标定信息
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief get camera current calibration info
|
|
|
|
|
# param self.handle [IN] camera handle
|
|
|
|
|
# param nCoordinateType [IN] coordinate Type,refer to Mv3dRgbdCoordinateType
|
|
|
|
|
# param pstCalibInfo [IN][OUT] calibration Info
|
|
|
|
|
# return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_GetCalibInfo(self, nCoordinateType, pstCalibInfo):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetCalibInfo.argtype = (c_void_p, c_uint, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetCalibInfo.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetCalibInfo(HANDLE handle, uint32_t nCoordinateType, MV3D_RGBD_CALIB_INFO *pstCalibInfo);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetCalibInfo(self.handle, nCoordinateType, pstCalibInfo)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
# brief 获取相机内外参信息
|
|
|
|
|
# param handle [IN] 相机句柄
|
|
|
|
|
# param pstCameraParam [IN][OUT] 输出相机内/外参数信息
|
|
|
|
|
# return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
# brief get camera intrinsic and extrinsic information
|
|
|
|
|
# param handle [IN] camera handle
|
|
|
|
|
# param pstCameraParam [IN][OUT] camera intrinsic and extrinsic Info
|
|
|
|
|
def MV3D_RGBD_GetCameraParam(self, pstCameraParam):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetCameraParam.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetCameraParam.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetCameraParam(HANDLE handle, MV3D_RGBD_CAMERA_PARAM *pstCameraParam);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetCameraParam(self.handle, pstCameraParam)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 设备升级
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pFilePathName [IN] 文件名
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief device upgrade
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pFilePathName [IN] file name
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_LocalUpgrade(self, pFilePathName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_LocalUpgrade.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_LocalUpgrade.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_LocalUpgrade(HANDLE handle, const char* pFilePathName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_LocalUpgrade(self.handle, pFilePathName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 获取升级进度
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pProcess [OUT] 进度接收地址
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief get upgrade progress
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pProcess [OUT] progress receiving address
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_GetUpgradeProcess(self, pProcess):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetUpgradeProcess.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetUpgradeProcess.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetUpgradeProcess(HANDLE handle, uint32_t* pProcess);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetUpgradeProcess(self.handle, pProcess)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 获取相机参数值
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param strKey [IN] 属性键值
|
|
|
|
|
#param pstParam [IN] 返回的相机参数结构体指针
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief get camera param value
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param strKey [IN] key value
|
|
|
|
|
#param pstParam [IN] structure pointer of camera param
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_GetParam(self, strkey, pstParam):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetParam.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetParam.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetParam(HANDLE handle, const char* strKey, MV3D_RGBD_PARAM* pstParam);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetParam(self.handle, strkey.encode('ascii'), pstParam)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 设置相机参数值
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param strKey [IN] 属性键值
|
|
|
|
|
#param pstParam [IN] 输入的相机参数结构体指针
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK,失败,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief set camera param value
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param strKey [IN] key value
|
|
|
|
|
#param pstParam [IN] structure pointer of camera param
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_SetParam(self, strkey, pstParam):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SetParam.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SetParam.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SetParam(HANDLE handle, const char* strKey, MV3D_RGBD_PARAM* pstParam);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SetParam(self.handle, strkey.encode('ascii'), pstParam)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 导出相机参数
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pOutFileName [IN] 导出文件名称
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief export camera param
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pOutFileName [IN] export file name
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_ExportAllParam(self, pOutFileName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ExportAllParam.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ExportAllParam.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_ExportAllParam(HANDLE handle, const char* pOutFileName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_ExportAllParam(self.handle, pOutFileName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 导入相机参数
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pInFileName [IN] 导入文件名称
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief import camera param
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pInFileName [IN] import file name
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_ImportAllParam(self, pInFileName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ImportAllParam.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ImportAllParam.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_ImportAllParam(HANDLE handle, const char* pInFileName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_ImportAllParam(self.handle, pInFileName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 从相机读取文件
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstFileAccess [IN] 文件存取结构体
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief read the file from the camera
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstFileAccess [IN] file access structure
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_FileAccessRead(self, pstFileAccess):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_FileAccessRead.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_FileAccessRead.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_FileAccessRead(void* handle, MV3D_RGBD_FILE_ACCESS * pstFileAccess);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_FileAccessRead(self.handle, pstFileAccess)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 将文件写入相机
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstFileAccess [IN] 文件存取结构体
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief write the file to camera
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstFileAccess [IN] file access structure
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_FileAccessWrite(self, pstFileAccess):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_FileAccessWrite.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_FileAccessWrite.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_FileAccessWrite(void* handle, MV3D_RGBD_FILE_ACCESS * pstFileAccess);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_FileAccessWrite(self.handle, pstFileAccess)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 获取文件存取的进度
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstFileAccessProgress [IN] 文件存取进度结构体
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief get file access progress
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstFileAccessProgress [IN] file access progress structure
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_GetFileAccessProgress(self, pstFileAccessProgress):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetFileAccessProgress.argtype = (c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_GetFileAccessProgress.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetFileAccessProgress(void* handle, MV3D_RGBD_FILE_ACCESS_PROGRESS * pstFileAccessProgress);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_GetFileAccessProgress(self.handle, pstFileAccessProgress)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 检查相机功能支持情况
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param enFuncType [IN] 功能类型
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
#remark 调用该接口检查相机是否支持某项功能,例如检查相机是否支持触发id功能,如果支持,则后续可以调用MV3D_RGBD_SoftTriggerEx接口,执行带触发id的软触发
|
|
|
|
|
|
|
|
|
|
#brief check camera function support
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param enFuncType [IN] function type
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
#remark Call this interface to check whether the camera supports a certain function, for example, check whether the camera supports the trigger id function.
|
|
|
|
|
# If camera supports the trigger id function, you can call the MV3D_RGBD_SoftTriggerEx interface to execute the soft trigger with the trigger id
|
|
|
|
|
def MV3D_RGBD_CheckCameraFuncSupport(self, enFuncType):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_CheckCameraFuncSupport.argtype = (c_void_p, c_uint)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_CheckCameraFuncSupport.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_CheckCameraFuncSupport(void* handle, Mv3dRgbdFunctionType enFuncType);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_CheckCameraFuncSupport(self.handle, enFuncType)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 清除数据缓存
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief clear data buffer
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_ClearDataBuffer(self):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ClearDataBuffer.argtype = c_void_p
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ClearDataBuffer.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_ClearDataBuffer(void* handle);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_ClearDataBuffer(self.handle)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief RGBD相机深度图像转换点云图像
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstDepthImage [IN] 深度图数据
|
|
|
|
|
#param pstPointCloudImage [OUT] 点云图数据
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief depth image convert to pointcloud image
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstDepthImage [IN] depth data
|
|
|
|
|
#param pstPointCloudImage [OUT] point cloud data
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure,return error code
|
|
|
|
|
def MV3D_RGBD_MapDepthToPointCloud(self, pstDepthImage, pstPointCloudImage):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapDepthToPointCloud.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapDepthToPointCloud.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_MapDepthToPointCloud(void* handle, MV3D_RGBD_IMAGE_DATA* pstDepthImage, MV3D_RGBD_IMAGE_DATA* pstPointCloudImage);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_MapDepthToPointCloud(self.handle, pstDepthImage, pstPointCloudImage)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief RGBD相机深度图像转换点云图像(无句柄)
|
|
|
|
|
#param pstDepthImage [IN] 深度图数据
|
|
|
|
|
#param pstCalibInfo [IN] 标定信息
|
|
|
|
|
#param fZunit [IN] 深度图量纲(mm)
|
|
|
|
|
#param pstPointCloudImage [OUT] 点云图数据
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief depth image convert to pointcloud image without handle
|
|
|
|
|
#param pstDepthImage [IN] depth data
|
|
|
|
|
#param pstCalibInfo [IN] calib info
|
|
|
|
|
#param fZunit [IN] dimension(mm)
|
|
|
|
|
#param pstPointCloudImage [OUT] point cloud data
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure,return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_MapDepthToPointCloudEx(pstDepthImage, pstCalibInfo, fZunit, pstPointCloudImage):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapDepthToPointCloudEx.argtype = (c_void_p, c_void_p, c_float, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapDepthToPointCloudEx.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_MapDepthToPointCloudEx(MV3D_RGBD_IMAGE_DATA* pstDepthImage, MV3D_RGBD_CALIB_INFO* pstCalibInfo, float fZunit, MV3D_RGBD_IMAGE_DATA* pstPointCloudImage);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_MapDepthToPointCloudEx(pstDepthImage, pstCalibInfo, ctypes.c_float(fZunit), pstPointCloudImage)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 图像坐标系转换
|
|
|
|
|
#param pstInImage [IN] 输入图像数据
|
|
|
|
|
#param fZunit [IN] 深度图量纲(mm)
|
|
|
|
|
#param pstOutImage [OUT] 输出图像数据
|
|
|
|
|
#param pstCameraParam [IN][OUT] 相机内/外参数信息
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief image convert coordinate to rgb coordinate
|
|
|
|
|
#param pstInImage [IN] input image data
|
|
|
|
|
#param fZunit [IN] dimension(mm)
|
|
|
|
|
#param pstOutImage [OUT] output image data
|
|
|
|
|
#param pstCameraParam [IN][OUT] camera intrinsic and extrinsic Info
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure,return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_ImageCoordinateTrans(pstInImage, fZunit, pstOutImage, pstCameraParam):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ImageCoordinateTrans.argtype = (c_void_p, c_float, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_ImageCoordinateTrans.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_ImageCoordinateTrans(MV3D_RGBD_IMAGE_DATA* pstInImage, float fZunit, MV3D_RGBD_IMAGE_DATA* pstOutImage, MV3D_RGBD_CAMERA_PARAM* pstCameraParam);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_ImageCoordinateTrans(pstInImage, ctypes.c_float(fZunit), pstOutImage, pstCameraParam)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 深度图,RGB图和原始图存图接口
|
|
|
|
|
# 深度图格式:C16
|
|
|
|
|
# RGB图格式:RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
|
|
|
|
|
# 原始图格式:Mono8(仅支持bmp格式)
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstImage [IN] 图像数据
|
|
|
|
|
#param enFileType [IN] 文件类型
|
|
|
|
|
#param chFileName [IN] 文件名称
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief depth and rgb image save image to file
|
|
|
|
|
# depth image format: C16
|
|
|
|
|
# rgb image format: RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
|
|
|
|
|
# mono image format: Mono8(only support bmp file type)
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstImage [IN] image data
|
|
|
|
|
#param enFileType [IN] file type
|
|
|
|
|
#param chFileName [IN] file name
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_SaveImage(self, pstImage, enFileType, chFileName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SaveImage.argtype = (c_void_p, c_void_p, c_int, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SaveImage.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SaveImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstImage, Mv3dRgbdFileType enFileType, const char* chFileName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SaveImage(self.handle, pstImage, enFileType, chFileName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 点云图存图接口
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstImage [IN] 图像数据
|
|
|
|
|
#param enPointCloudFileType [IN] 点云图文件类型
|
|
|
|
|
#param chFileName [IN] 文件名称
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief pointcloud image save image to file
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstImage [IN] image data
|
|
|
|
|
#param enPointCloudFileType [IN] pointcloud image file type
|
|
|
|
|
#param chFileName [IN] file name
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_SavePointCloudImage(self, pstImage, enPointCloudFileType, chFileName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SavePointCloudImage.argtype = (c_void_p, c_void_p, c_int, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SavePointCloudImage.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SavePointCloudImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstImage, Mv3dRgbdPointCloudFileType enPointCloudFileType, const char* chFileName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SavePointCloudImage(self.handle, pstImage, enPointCloudFileType, chFileName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 纹理点云存图接口
|
|
|
|
|
# 纹理图格式: RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
|
|
|
|
|
# 保存的点云图格式: PLY_ASCII/PLC_Binary/PCD_ASCII/PCD_Binary
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstPointCloudImage [IN] 点云图像数据
|
|
|
|
|
#param pstTexture [IN] 图像纹理数据
|
|
|
|
|
#param enPointCloudFileType [IN] 点云图文件类型
|
|
|
|
|
#param chFileName [IN] 文件名称
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief textured pointcloud image save image to file
|
|
|
|
|
# texture image format:RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
|
|
|
|
|
# point cloud file type: PLY_ASCII/PLC_Binary/PCD_ASCII/PCD_Binary
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstPointCloudImage [IN] pointcloude image data
|
|
|
|
|
#param pstTexture [IN] image texture data
|
|
|
|
|
#param enPointCloudFileType [IN] pointcloud image file type
|
|
|
|
|
#param chFileName [IN] file name
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_SaveTexturedPointCloudImage(self, pstPointCloudImage, pstTexture, enPointCloudFileType, chFileName):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SaveTexturedPointCloudImage.argtype = (c_void_p, c_void_p, c_void_p, c_int, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_SaveTexturedPointCloudImage.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SaveTexturedPointCloudImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstPointCloudImage, MV3D_RGBD_IMAGE_DATA* pstTexture, Mv3dRgbdPointCloudFileType enPointCloudFileType, const char* chFileName);
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_SaveTexturedPointCloudImage(self.handle, pstPointCloudImage, pstTexture, enPointCloudFileType, chFileName.encode('ascii'))
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 显示深度和RGB图像接口
|
|
|
|
|
# 深度图格式:C16
|
|
|
|
|
# RGB图格式:RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
|
|
|
|
|
#param handle [IN] 相机句柄
|
|
|
|
|
#param pstImage [IN] 图像数据
|
|
|
|
|
#param hWnd [IN] 窗口句柄
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief display depth and rgb image
|
|
|
|
|
# depth image format: C16
|
|
|
|
|
# rgb image format: RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
|
|
|
|
|
#param handle [IN] camera handle
|
|
|
|
|
#param pstImage [IN] image data
|
|
|
|
|
#param hWnd [IN] windows handle
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
def MV3D_RGBD_DisplayImage(self, pstImage, hWnd):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_DisplayImage.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_DisplayImage.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_DisplayImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstImage, void* hWnd)
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_DisplayImage(self.handle, pstImage, hWnd)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 深度图转伪彩图接口
|
|
|
|
|
# 深度图格式:C16
|
|
|
|
|
# 伪彩图格式:RGB8_Planar
|
|
|
|
|
#param pstDepthImage [IN] 深度图像数据
|
|
|
|
|
#param pstConvertParam [IN] 深度图转伪彩配置参数
|
|
|
|
|
#param pstColorImage [OUT] 伪彩图像数据
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief display depth and rgb image
|
|
|
|
|
# depth image format: C16
|
|
|
|
|
# rgb image format: RGB8_Planar
|
|
|
|
|
#param pstDepthImage [IN] depth image data
|
|
|
|
|
#param pstConvertParam [IN] depth convert to color image parameters
|
|
|
|
|
#param pstColorImage [OUT] color image data
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_MapDepthToColor(pstDepthImage, pstConvertParam, pstColorImage):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapDepthToColor.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapDepthToColor.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_MapDepthToColor(MV3D_RGBD_IMAGE_DATA* pstDepthImage, MV3D_RGBD_CONVERT_COLOR_PAPRAM* pstConvertParam, MV3D_RGBD_IMAGE_DATA* pstColorImage)
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_MapDepthToColor(pstDepthImage, pstConvertParam, pstColorImage)
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
|
|
|
|
|
# *******************************************************************************************************
|
|
|
|
|
#brief 点云转UV坐标接口
|
|
|
|
|
#param pstCloudPointImage [IN] 点云图像数据
|
|
|
|
|
#param pstCalibInfo [IN] 标定参数
|
|
|
|
|
#param pstUVMap [OUT] UV坐标数据
|
|
|
|
|
#return 成功,返回MV3D_RGBD_OK;错误,返回错误码
|
|
|
|
|
|
|
|
|
|
#brief convert point cloud to uv coordinate
|
|
|
|
|
#param pstCloudPointImage [IN] point cloud image data
|
|
|
|
|
#param pstCalibInfo [IN] calib info
|
|
|
|
|
#param pstUVMap [OUT] uv coordinate data
|
|
|
|
|
#return Success, return MV3D_RGBD_OK. Failure, return error code
|
|
|
|
|
@staticmethod
|
|
|
|
|
def MV3D_RGBD_MapPointCloudToUV(pstCloudPointImage, pstCalibInfo, pstUvMap):
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapPointCloudToUV.argtype = (c_void_p, c_void_p, c_void_p)
|
|
|
|
|
Mv3dRgbdDll.MV3D_RGBD_MapPointCloudToUV.restype = c_uint
|
|
|
|
|
# C:MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_MapPointCloudToUV(MV3D_RGBD_IMAGE_DATA* pstCloudPointImage, MV3D_RGBD_CALIB_INFO* pstCalibInfo, MV3D_RGBD_UV_DATA* pstUvMap)
|
|
|
|
|
return Mv3dRgbdDll.MV3D_RGBD_MapPointCloudToUV(pstCloudPointImage, pstCalibInfo, pstUvMap)
|
|
|
|
|
# *******************************************************************************************************
|