/******************************************************************************************** Copyright : XianZhisensorTechnologiesCo.,Ltd File Name : zhicamera_api.cpp Description: APIs accessed by users Version : Author : ss.chen Data : 2020-4-16 History : *********************************************************************************************/ #pragma once #include "dkam_base_type.h" #include #ifdef __cplusplus extern "C" { #endif //using namespace std; typedef struct CAMERA_OBJECT Camera_Object_C; #ifdef _WIN32 #define DLLEXPORT_API extern __declspec(dllexport) #define DLL_INT int __stdcall #define DLL_CHAR_POINT char* __stdcall #define DLL_BOOL bool __stdcall #define DLL_UNSIGNED_LONG_LONG unsigned long long __stdcall #define DLL_UNSIGNED_INT unsigned int __stdcall #define DLL_VOID void __stdcall #define DLL_CAMERA_OBJECT_POINT Camera_Object_C* __stdcall #define DLL_DISCOVERYINFO DiscoveryInfo __stdcall #define DLL_DOUBLE double __stdcall #define DLL_FLOAT float __stdcall #else #define DLLEXPORT_API #define DLL_INT int #define DLL_CHAR_POINT char* #define DLL_BOOL bool #define DLL_UNSIGNED_LONG_LONG unsigned long long #define DLL_UNSIGNED_INT unsigned int #define DLL_VOID void #define DLL_CAMERA_OBJECT_POINT Camera_Object_C* #define DLL_DISCOVERYINFO DiscoveryInfo #define DLL_DOUBLE double #define DLL_FLOAT float #endif /*///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// ******************************************相机相关操作***************************************** /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////*/ //发现相机 DLLEXPORT_API DLL_INT DiscoverCamera(); //创建相机 DLLEXPORT_API DLL_CAMERA_OBJECT_POINT CreateCamera(int camera_index); //销毁相机 DLLEXPORT_API DLL_VOID DestroyCamera(Camera_Object_C* camera_obj); //相机排序(0:IP 1:series number) DLLEXPORT_API DLL_INT CameraSort(int sort_mode); //获取相机的信息 DLLEXPORT_API DLL_DISCOVERYINFO GetCameraInfo(Camera_Object_C* camera_obj); //获取相机的CCP状态(data输出0为可连接) DLLEXPORT_API DLL_INT GetCameraCCPStatus(Camera_Object_C* camera_obj, int *data); //获取相机xml所有节点名称 DLLEXPORT_API DLL_VOID GetCameraXMLNodeNames(Camera_Object_C* camera_obj, char node_names[][255], int* len); //获取节点最大值 DLLEXPORT_API DLL_INT GetNodeMaxValue(Camera_Object_C* camera_obj, const char* key); //获取节点最小值 DLLEXPORT_API DLL_INT GetNodeMinValue(Camera_Object_C* camera_obj, const char* key); //获取int节点增量 DLLEXPORT_API DLL_INT GetNodeIncValue(Camera_Object_C* camera_obj, const char* key); //获取相机节点value(camera_ret:相机索引号 key:寄存器的名称) DLLEXPORT_API DLL_INT GetRegisterAddr(Camera_Object_C* camera_obj, const char* key); //读string类型的寄存器 DLLEXPORT_API DLL_INT ReadStringRegister(Camera_Object_C* camera_obj, const char* key, char* reg_str); //写string类型的寄存器 DLLEXPORT_API DLL_INT WriteStringRegister(Camera_Object_C* camera_obj, const char* key, unsigned short datasize, char* reg_str); //相机IP(camera_ret:相机索引号) DLLEXPORT_API DLL_CHAR_POINT CameraIP(int camera_index); //相机的序列号 DLLEXPORT_API DLL_CHAR_POINT CameraSeriesNumberByIndex(int camera_index); //设置log日志的等级开关,决定是否开启某一个等级的日志打印,默认关闭(0:关闭 1:开启) DLLEXPORT_API DLL_VOID SetLogLevel(int error, int debug, int warnning, int info); //连接相机(camera_ret:相机索引号) DLLEXPORT_API DLL_INT CameraConnect(Camera_Object_C* camera_obj); //开启数据流通道 (camera_ret:相机索引号 channel_index :数据流通道索引) DLLEXPORT_API DLL_INT StreamOn(Camera_Object_C* camera_obj, unsigned short channel_index); //开始接受数据 (camera_ret:相机索引号) DLLEXPORT_API DLL_INT AcquisitionStart(Camera_Object_C* camera_obj); //清空缓存区 DLLEXPORT_API DLL_VOID FlushBuffer(Camera_Object_C* camera_obj, unsigned short channel_index); //设置最大的缓冲区 DLLEXPORT_API DLL_INT SetMaxBufferLength(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int size); //获取buffer缓冲区大小 DLLEXPORT_API DLL_INT GetMaxBufferLength(Camera_Object_C* camera_obj, unsigned short channel_index); //设置重发包比例 DLLEXPORT_API DLL_INT SetPacketResendRatio(Camera_Object_C* camera_obj, unsigned short channel_index, double ratio); //获取重发包比例 DLLEXPORT_API DLL_DOUBLE GetPacketResendRatio(Camera_Object_C* camera_obj, unsigned short channel_index); //设置select的超时时间 DLLEXPORT_API DLL_INT SetSocketSelectTimeout(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int timeout); //获取select的超时时间 DLLEXPORT_API DLL_INT GetSocketSelectTimeout(Camera_Object_C* camera_obj, unsigned short channel_index); //设置重发包超时时间 DLLEXPORT_API DLL_INT SetPacketTimeout(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int timeout); //获取重发包超时时间 DLLEXPORT_API DLL_INT GetPacketTimeout(Camera_Object_C* camera_obj, unsigned short channel_index); //设置block超时时间 DLLEXPORT_API DLL_INT SetBlockTimeout(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int timeout); //获取block超时时间 DLLEXPORT_API DLL_INT GetBlockTimeout(Camera_Object_C* camera_obj, unsigned short channel_index); //获取帧方面的统计数据 DLLEXPORT_API DLL_VOID GetBlockStatistics(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int *completed_buffers, unsigned int *failures, unsigned int *timeouts, unsigned int *underruns, unsigned int *aborteds, unsigned int *missing_frames, unsigned int *block_camera_wrong, unsigned int *size_mismatch_errors); //获取包方面的统计数据 DLLEXPORT_API DLL_VOID GetPacketStatistics(Camera_Object_C* camera_obj, unsigned short channel_index, unsigned int *received_packets, unsigned int *missing_packets, unsigned int *error_packets, unsigned int *ignored_packets, unsigned int *resend_requests, unsigned int *resent_packets, unsigned int *duplicated_packets); //获取接收花费时间方面的统计数据 DLLEXPORT_API DLL_VOID GetRecieveTimeStatistics(Camera_Object_C* camera_obj, unsigned short channel_index, StatisticsData *o_statistics_data); //获取网速的统计数据 DLLEXPORT_API DLL_INT GetNetSpeed(Camera_Object_C* camera_obj, unsigned short channel_index); //获取帧率的统计数据 DLLEXPORT_API DLL_FLOAT GetBlockRate(Camera_Object_C* camera_obj, unsigned short channel_index); //获取数据(camera_ret:相机索引号 channel_index :数据流通道索引 raw_data:接收数据的结构体 ) /*C++*/ //阻塞式抓取数据 DLLEXPORT_API DLL_INT Capture(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfo *raw_data); //try DLLEXPORT_API DLL_INT TryCapture(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfo *raw_data); //超时抓取数据 DLLEXPORT_API DLL_INT TimeoutCapture(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfo *raw_data, long long timeout); //将char数据转为float类型 DLLEXPORT_API DLL_VOID Convert3DPointFromCharToFloat(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float* output); //将Rawdata数据转换成RGB888的图像数据 DLLEXPORT_API DLL_INT RawdataToRgb888(Camera_Object_C* camera_obj, PhotoInfo *rgb_data); //获取点云的X平面数据 DLLEXPORT_API DLL_INT GetCloudPlaneX(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata); //获取点云的Y平面数据 DLLEXPORT_API DLL_INT GetCloudPlaneY(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata); //获取点云的Z平面数据 DLLEXPORT_API DLL_INT GetCloudPlaneZ(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata); //保存点云某个平面数据 DLLEXPORT_API DLL_INT SaveCloudPlane(Camera_Object_C* camera_obj, PhotoInfo *raw_data, short *imagedata, char* path_name); /*C++*/ //停止接受数据(camera_ret:相机索引号) DLLEXPORT_API DLL_INT AcquisitionStop(Camera_Object_C* camera_obj); //关闭数据流通道 (camera_ret:相机索引号 channel_index :数据流通道索引) DLLEXPORT_API DLL_INT StreamOff(Camera_Object_C* camera_obj, unsigned short channel_index); //相机断开连接 (camera_ret:相机索引号) DLLEXPORT_API DLL_INT CameraDisconnect(Camera_Object_C* camera_obj); /*///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// ****************************************GVCP相关操作******************************************* /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////*/ //获取相机内参 DLLEXPORT_API DLL_INT GetCamInternelParameter(Camera_Object_C* camera_obj, int camera_cnt, float *Kc, float *K); //获取相机外参 DLLEXPORT_API DLL_INT GetCamExternelParameter(Camera_Object_C* camera_obj, int camera_cnt, float *R, float *T); //设置相机ip (camera_ret:相机索引号 ip mask gateway) DLLEXPORT_API DLL_INT ForceIP(Camera_Object_C* camera_obj, char* ip, char* mask, char* gateway); //判断相机的IP和PC的IP是否在同一网段 DLLEXPORT_API DLL_BOOL WhetherIsSameSegment(Camera_Object_C* camera_obj); //设置相机种类 (0:红外;1:RGB) DLLEXPORT_API DLL_INT SetCameraType(Camera_Object_C* camera_obj, int camera_cnt); //获取相机种类 (0:红外;1:RGB) DLLEXPORT_API DLL_INT GetCameraType(Camera_Object_C* camera_obj); //获取相机的宽 DLLEXPORT_API DLL_INT GetCameraWidth(Camera_Object_C* camera_obj, int* width, int camera_cnt); //设置相机的宽 DLLEXPORT_API DLL_INT SetCameraWidth(Camera_Object_C* camera_obj, int width, int camera_cnt); //获取相机的高 DLLEXPORT_API DLL_INT GetCameraHeight(Camera_Object_C* camera_obj, int* height, int camera_cnt); //设置相机的高 DLLEXPORT_API DLL_INT SetCameraHeight(Camera_Object_C* camera_obj, int height, int camera_cnt); //写寄存器 (camera_ret:相机索引号 register_addr:寄存器的地址 data:接收寄存器的值) DLLEXPORT_API DLL_INT WriteRegister(Camera_Object_C* camera_obj, unsigned int register_addr, int data); //读寄存器 (camera_ret:相机索引号 register_addr:寄存器的地址 data:接收寄存器的值) DLLEXPORT_API DLL_INT ReadRegister(Camera_Object_C* camera_obj, unsigned int register_addr, int* data); //设置超时时间 DLLEXPORT_API DLL_INT SetHeartBeatTimeout(Camera_Object_C* camera_obj, int value); //获取超时时间 DLLEXPORT_API DLL_INT GetHeartBeatTimeout(Camera_Object_C* camera_obj); //设置相机曝光模式(camera_index:相机索引号 status:(1手动曝光,0自动曝光) camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头) DLLEXPORT_API DLL_INT SetAutoExposure(Camera_Object_C* camera_obj, int status, int camera_cnt); //获取相机曝光模式 (camera_index:相机索引号 camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头) DLLEXPORT_API DLL_INT GetAutoExposure(Camera_Object_C* camera_obj, int camera_cnt); //设置RGB摄像头自动曝光增益的级别(>=1 仅支持RGB摄像头) (camera_index:相机索引号 camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头 level:曝光增益等级) DLLEXPORT_API DLL_INT SetCamExposureGainLevel(Camera_Object_C* camera_obj, int camera_cnt, int level); //获取RGB摄像头自动曝光增益的级别,仅支持RGB摄像头(camera_index:相机索引号 camera_cnt:相机的摄像头0:红外摄像头 1:RGB摄像头) DLLEXPORT_API DLL_INT GetCamExposureGainLevel(Camera_Object_C* camera_obj, int camera_cnt); //设置相机曝光类型int status >0 多重曝光 不能是0 DLLEXPORT_API DLL_INT SetMutipleExposure(Camera_Object_C* camera_obj, int status); //获取相机曝光类型 DLLEXPORT_API DLL_INT GetMutipleExposure(Camera_Object_C* camera_obj); //设置曝光时间utimes:曝光时间: 红外镜头范围1000 - 100000um, RGB镜头范围1000 - 56000um, 默认16600, camera_cnt:0是红外, 1是RGB DLLEXPORT_API DLL_INT SetExposureTime(Camera_Object_C* camera_obj, int utime, int camera_cnt); //获取相机曝光时间 camera_cnt:0是红外, 1是RGB DLLEXPORT_API DLL_INT GetExposureTime(Camera_Object_C* camera_obj, int camera_cnt); //设置相机多曝光模式, 0:等差,1:等比 DLLEXPORT_API DLL_INT SetMultiExpoMode(Camera_Object_C* camera_obj, int mode); //获取相机多曝光模式 DLLEXPORT_API DLL_INT GetMultiExpoMode(Camera_Object_C* camera_obj); //设置多曝光起点,value 范围:0-100000 DLLEXPORT_API DLL_INT SetMultiExpoMin(Camera_Object_C* camera_obj, int value); //获取多曝光起点 DLLEXPORT_API DLL_INT GetMultiExpoMin(Camera_Object_C* camera_obj); //设置多曝光终点,value 范围:0-100000 DLLEXPORT_API DLL_INT SetMultiExpoMax(Camera_Object_C* camera_obj, int value); //获取多曝光终点 DLLEXPORT_API DLL_INT GetMultiExpoMax(Camera_Object_C* camera_obj); //设置增益 model: 1 模拟增益量 2 数据增益量 value: 增益值 times:缺省参数,缺省为1, 第二次增益times = 2 DLLEXPORT_API DLL_INT SetGain(Camera_Object_C* camera_obj, int mode, int value, int camera_cnt); //获取相机增益值 mode: 1 模拟增益量 2 数据增益量 DLLEXPORT_API DLL_INT GetGain(Camera_Object_C* camera_obj, int mode, int camera_cnt); //设置相机触发模式mode: 0 连拍模式 1 触发模式 DLLEXPORT_API DLL_INT SetTriggerMode(Camera_Object_C* camera_obj, int mode); //设置相机触发模式信号来源: 0 软触发 1 硬触发 DLLEXPORT_API DLL_INT SetTriggerSource(Camera_Object_C* camera_obj, int sourcetype); //设置相机RGB触发模式mode: 0 连拍模式 1 触发模式 DLLEXPORT_API DLL_INT SetRGBTriggerMode(Camera_Object_C* camera_obj, int mode); //设置相机触发模式下的触发帧数 DLLEXPORT_API DLL_INT SetTriggerCount(Camera_Object_C* camera_obj); //获取相机触发模式下的触发帧数 DLLEXPORT_API DLL_INT GetTriggerCount(Camera_Object_C* camera_obj); //设置相机RGB触发模式下的触发帧数 DLLEXPORT_API DLL_INT SetRGBTriggerCount(Camera_Object_C* camera_obj); //设置重发请求: 0 关闭, 1 打开(默认开启) DLLEXPORT_API DLL_VOID SetResendRequest(Camera_Object_C* camera_obj, int channel_index, int resend_flag); //获取重发请求: 0 关闭, 1 打开(默认开启) DLLEXPORT_API DLL_INT GetResendRequest(Camera_Object_C* camera_obj, int channel_index); //设置红外摄像头ROI DLLEXPORT_API DLL_INT SetRoi(Camera_Object_C* camera_obj, int channel_index, int size_x, int size_y, int offset_x, int offset_y); //设置激光模式: 1 line, 0 plane(默认plane) DLLEXPORT_API DLL_INT SetLaserMode(Camera_Object_C* camera_obj, int mode); //获取激光模式 DLLEXPORT_API DLL_INT GetLaserMode(Camera_Object_C* camera_obj); //设置点云后处理模型 DLLEXPORT_API DLL_INT SetPointCloudPostProcessMode(Camera_Object_C* camera_obj, int mode); //获取点云后处理模型 DLLEXPORT_API DLL_INT GetPointCloudPostProcessMode(Camera_Object_C* camera_obj); //设置点云增益值,取值范围:0-30,只有当点云自动增益等级为0时才可以设置该值 DLLEXPORT_API DLL_INT SetPointCloudThresholdValue(Camera_Object_C* camera_obj, int value); //获取点云增益值 DLLEXPORT_API DLL_INT GetPointCloudThresholdValue(Camera_Object_C* camera_obj, int* value); //设置点云自动增益等级: 0-20 DLLEXPORT_API DLL_INT SetPointCloudThresholdLevel(Camera_Object_C* camera_obj, int level); //获取点云自动增益等级 DLLEXPORT_API DLL_INT GetPointCloudThresholdLevel(Camera_Object_C* camera_obj, int* level); //获取xml buffer size DLLEXPORT_API DLL_INT GetXMLBufferSize(Camera_Object_C* camera_obj, int* xml_size); //获取xml buffer DLLEXPORT_API DLL_INT GetXMLBuffer(Camera_Object_C* camera_obj, char* buffer); //保存用户配置文件 DLLEXPORT_API DLL_INT SaveUserConfig(Camera_Object_C* camera_obj, char* fliename); //加载用户配置文件 DLLEXPORT_API DLL_INT LoadUserConfig(Camera_Object_C* camera_obj,char* fliename); //获取节点类型 DLLEXPORT_API DLL_INT GetNodeType(Camera_Object_C* camera_obj, const char* key); //获取节点访问模式 DLLEXPORT_API DLL_INT GetNodeAccessMode(Camera_Object_C* camera_obj, const char* key); //设置Int类型节点值 DLLEXPORT_API DLL_INT SetIntNodeValue(Camera_Object_C* camera_obj, const char* key, unsigned int value); //设置Bool类型节点值 DLLEXPORT_API DLL_INT SetBoolNodeValue(Camera_Object_C* camera_obj, const char* key, bool value); //设置Command类型节点值 DLLEXPORT_API DLL_INT SetCommandNodeValue(Camera_Object_C* camera_obj, const char* key); //设置Float类型节点值 DLLEXPORT_API DLL_INT SetFloatNodeValue(Camera_Object_C* camera_obj, const char* key, float value); //设置String类型节点值 DLLEXPORT_API DLL_INT SetStringNodeValue(Camera_Object_C* camera_obj, const char* key, char* value); //设置Enumeration类型节点值 DLLEXPORT_API DLL_INT SetEnumNodeValue(Camera_Object_C* camera_obj, const char* key, int value); //获取Int类型节点值 DLLEXPORT_API DLL_INT GetIntNodeValue(Camera_Object_C* camera_obj, const char* key, int* value); //获取Bool类型节点值 DLLEXPORT_API DLL_INT GetBoolNodeValue(Camera_Object_C* camera_obj, const char* key, int* value); //获取Command类型节点值 DLLEXPORT_API DLL_INT GetCommandNodeValue(Camera_Object_C* camera_obj, const char* key, char* value); //获取Float类型节点值 DLLEXPORT_API DLL_INT GetFloatNodeValue(Camera_Object_C* camera_obj, const char* key, float* value); //获取String类型节点值 DLLEXPORT_API DLL_INT GetStringNodeValue(Camera_Object_C* camera_obj, const char* key, char* value); //获取Enumeration类型节点值 DLLEXPORT_API DLL_INT GetEnumNodeValue(Camera_Object_C* camera_obj, const char* key, int* value); //开启或关闭时间戳同步status: 0 关闭时间戳同步 1 开启时间戳同步 DLLEXPORT_API DLL_INT SetTimestamp(Camera_Object_C* camera_obj, int status); //获取时间戳是否开启 DLLEXPORT_API DLL_INT GetTimestamp(Camera_Object_C* camera_obj); //获取PTPD状态码 DLLEXPORT_API DLL_INT GetTimestampStatus(Camera_Object_C* camera_obj); //控制锁存时间戳 DLLEXPORT_API DLL_INT SetTimestampControlLatch(Camera_Object_C* camera_obj); //获取时间戳 DLLEXPORT_API DLL_UNSIGNED_LONG_LONG GetTimestampValue(Camera_Object_C* camera_obj); //获取时间戳频率 DLLEXPORT_API DLL_UNSIGNED_LONG_LONG GetTimestampTickFrequency(Camera_Object_C* camera_obj); //固件升级 DLLEXPORT_API DLL_INT FirmwareUpgrade(Camera_Object_C* camera_obj, const char *localfilename); //内核升级 DLLEXPORT_API DLL_INT KernelUpgrade(Camera_Object_C* camera_obj, const char* localfilename); //获取下位置日志 DLLEXPORT_API DLL_INT DownloadCameraLog(Camera_Object_C* camera_obj, const char* filepath, const char* filename); //获取下位机日志目录 DLLEXPORT_API DLL_INT CameraLogList(Camera_Object_C* camera_obj, char filename_s[][255], int* len); //图片裁剪 DLLEXPORT_API DLL_INT ImageRoiCrop(Camera_Object_C* camera_obj, PhotoInfo* source_data, RoiPoint roi, PhotoInfo* target_data); //获取相机盖状态,此接口只对特定型号相机适用, 0:相机盖关闭,1:相机盖打开, 其他:查看错误码 DLLEXPORT_API DLL_INT GetCameraCoverStatus(Camera_Object_C* camera_obj, int* status); //相机盖状态,此接口只对特定型号相机适用 DLLEXPORT_API DLL_INT TurnOnCameraCover(Camera_Object_C* camera_obj); //关闭相机盖,此接口只对特定型号相机适用 DLLEXPORT_API DLL_INT TurnOffCameraCover(Camera_Object_C* camera_obj); // 设置激光器正常/关闭接口,1:关闭,0:正常,默认是正常状态 DLLEXPORT_API DLL_INT SetLaserStatus(Camera_Object_C* camera_obj, int status); // 获取激光器正常/关闭接口,1:关闭,0:正常,返回值,0:成功,其他查看错误码 DLLEXPORT_API DLL_INT GetLaserStatus(Camera_Object_C* camera_obj, int* status); /*///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// *******************************************数据保存******************************************** /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////*/ //保存xml到本地 DLLEXPORT_API DLL_INT SaveXmlToLocal(Camera_Object_C* camera_obj, char* pathname); /*C++*/ //保存点云 to pcd 格式 DLLEXPORT_API DLL_INT SavePointCloudToPcd(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name); //保存点云 to txt 格式 DLLEXPORT_API DLL_INT SavePointCloudToTxt(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name); //保存点云 to ply 格式 DLLEXPORT_API DLL_INT SavePointCloudToPly(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name); //点云滤波(基于空间密度的点云去噪) DLLEXPORT_API DLL_VOID FilterPointCloud(Camera_Object_C* camera_obj, PhotoInfo *raw_data, double level); //空间滤波(基于空间网格的点云去噪) 20220225: 弃用, FilterPointCloud为该API的升级版 DLLEXPORT_API DLL_INT SpatialFilterPointcloud(Camera_Object_C* camera_obj, PhotoInfo *raw_data, int Area_PointCloudCount); //保存bmp图 DLLEXPORT_API DLL_INT SaveToBMP(Camera_Object_C* camera_obj, PhotoInfo *data, char* path_name); //保存点云深度图 to png DLLEXPORT_API DLL_INT SaveDepthToPng(Camera_Object_C* camera_obj, PhotoInfo *raw_data, char* path_name); //点云融合 DLLEXPORT_API DLL_INT FusionImageTo3D(Camera_Object_C* camera_obj, PhotoInfo *image_data, PhotoInfo *raw_data, float * image_cloud); //根据RGB重排点云 DLLEXPORT_API DLL_INT Fusion3DToRGB(Camera_Object_C* camera_obj, PhotoInfo *rgb_data, PhotoInfo *raw_data, PhotoInfo *xyz); //根据RGB重排点云 DLLEXPORT_API DLL_INT Fusion3DToRGBWithOutDistortion(Camera_Object_C* camera_obj, PhotoInfo* rgb_data, PhotoInfo* raw_data, PhotoInfo* xyz); //图像膨胀 DLLEXPORT_API DLL_VOID PixelSwell(Camera_Object_C* camera_obj, int *roi_output, PhotoInfo *target_data); //图像腐蚀 DLLEXPORT_API DLL_VOID PixelCorrosion(Camera_Object_C* camera_obj, int *roi_output, PhotoInfo *target_data); //ROI映射区域坐标 DLLEXPORT_API DLL_VOID ROIMappingCoordinate(Camera_Object_C* camera_obj, int *roi_output, PhotoInfo *target_data, RoiPoint *point_output); //ROI检索映射 DLLEXPORT_API DLL_VOID ROIPixelMapping(Camera_Object_C* camera_obj, PhotoInfo *point_data, PhotoInfo *source_data, PhotoInfo *target_data, RoiPoint *roi_input, int *ROI_output); //保存点云 with image to pcd DLLEXPORT_API DLL_INT SavePointCloudWithImageToTxt(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float * rgb_cloud, char *path_name); //保存与图片融合后的点云Ply(保留无效点) DLLEXPORT_API DLL_INT SavePointCloudWithImageToPly(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float * image_cloud, char *path_name); //保存与图片融合后的点云Pcd DLLEXPORT_API DLL_INT SavePointCloudWithImageToPcd(Camera_Object_C* camera_obj, PhotoInfo *raw_data, float * image_cloud, char *path_name); /*C++*/ /*///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// *******************************************获取版本号****************************************** /////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////*/ //相机固件的版本号 DLLEXPORT_API DLL_CHAR_POINT CameraVerions(Camera_Object_C* camera_obj); //SDK的版本号 DLLEXPORT_API DLL_CHAR_POINT SDKVersion(Camera_Object_C* camera_obj); DLLEXPORT_API DLL_CHAR_POINT sdkversion(); //相机的序列号 DLLEXPORT_API DLL_CHAR_POINT CameraSeriesNumber(Camera_Object_C* camera_obj); #ifdef __cplusplus } #endif