93 lines
6.5 KiB
C++
93 lines
6.5 KiB
C++
#pragma once
|
|
|
|
#include "dkam_base_type.h"
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
|
|
#ifdef _WIN32
|
|
#define DLLEXPORT_API extern __declspec(dllexport)
|
|
#define DLL_VOID void __stdcall
|
|
#define DLL_INT int __stdcall
|
|
#else
|
|
#define DLLEXPORT_API
|
|
#define DLL_VOID void
|
|
#define DLL_INT int
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
/*C#*/
|
|
DLLEXPORT_API DLL_VOID GetCameraXMLNodeNamesCSharp(Camera_Object_C* camera_obj, std::vector<std::string>* node_names);
|
|
//获取下位机日志目录
|
|
DLLEXPORT_API DLL_INT CameraLogListCSharp(Camera_Object_C* camera_obj, std::vector<std::string>* file_names, int* len);
|
|
//阻塞式抓取数据
|
|
DLLEXPORT_API DLL_INT CaptureCSharp(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size);
|
|
//try
|
|
DLLEXPORT_API DLL_INT TryCaptureCSharp(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size);
|
|
//超时抓取数据
|
|
DLLEXPORT_API DLL_INT TimeoutCaptureCSharp(Camera_Object_C* camera_obj, unsigned short channel_index, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, long long timeout);
|
|
//将char数据转为float类型
|
|
DLLEXPORT_API DLL_VOID Convert3DPointFromCharToFloatCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, float* output,int outputsize);
|
|
//将Rawdata数据转换成RGB888的图像数据
|
|
DLLEXPORT_API DLL_VOID RawdataToRgb888CSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size);
|
|
//获取点云的X平面数据
|
|
DLLEXPORT_API DLL_INT GetCloudPlaneXCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, short *imagedata, int datasize);
|
|
//获取点云的Y平面数据
|
|
DLLEXPORT_API DLL_INT GetCloudPlaneYCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, short *imagedata, int datasize);
|
|
//获取点云的Z平面数据
|
|
DLLEXPORT_API DLL_INT GetCloudPlaneZCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, short *imagedata, int datasize);
|
|
//保存点云某个平面数据
|
|
DLLEXPORT_API DLL_INT SaveCloudPlaneCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, short *imagedata, int datasize, char* path_name);
|
|
//保存点云 to pcd 格式
|
|
DLLEXPORT_API DLL_INT SavePointCloudToPcdCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, char* path_name);
|
|
//保存点云 to txt 格式
|
|
DLLEXPORT_API DLL_INT SavePointCloudToTxtCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, char* path_name);
|
|
//保存点云 to ply 格式
|
|
DLLEXPORT_API DLL_INT SavePointCloudToPlyCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, char* path_name);
|
|
//点云滤波(基于空间密度的点云去噪)
|
|
DLLEXPORT_API DLL_VOID FilterPointCloudCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, double level);
|
|
//空间滤波(基于空间网格的点云去噪) 20220225: 弃用, FilterPointCloud为该API的升级版
|
|
DLLEXPORT_API DLL_INT SpatialFilterPointcloudCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, int Area_PointCloudCount);
|
|
//保存bmp图
|
|
DLLEXPORT_API DLL_INT SaveToBMPCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, char *path_name);
|
|
//图片裁剪
|
|
DLLEXPORT_API DLL_INT ImageRoiCropCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp& source_data, char* source_pixel, int source_size, RoiPoint roi, PhotoInfoCSharp& target_data, char* target_pixel, int target_size);
|
|
//保存点云深度图 to png
|
|
DLLEXPORT_API DLL_INT SaveDepthToPngCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &raw_data_info, char *xyz, int pixel_size, char* path_name);
|
|
//点云融合
|
|
DLLEXPORT_API DLL_INT FusionImageTo3DCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &image_data_info, char *image_pixel, int image_pixel_size,
|
|
PhotoInfoCSharp &point_data_info, char *point_pixel, int point_pixel_size, float * image_cloud, int image_cloud_size);
|
|
//根据RGB重排点云
|
|
DLLEXPORT_API DLL_INT Fusion3DToRGBCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &image_data_info, char *image_pixel, int image_pixel_size,
|
|
PhotoInfoCSharp &point_data_info, char *point_pixel, int point_pixel_size,
|
|
PhotoInfoCSharp &xyz_data_info, char *xyz, int xyz_size);
|
|
//根据RGB重排点云
|
|
DLLEXPORT_API DLL_INT Fusion3DToRGBWithOutDistortionCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp& image_data_info, char* image_pixel, int image_pixel_size,
|
|
PhotoInfoCSharp& point_data_info, char* point_pixel, int point_pixel_size,
|
|
PhotoInfoCSharp& xyz_data_info, char* xyz, int xyz_size);
|
|
//图像膨胀
|
|
DLLEXPORT_API DLL_VOID PixelSwellCSharp(Camera_Object_C* camera_obj, int roi_output_size, int *roi_output, PhotoInfoCSharp &target_data, int target_pixel_size);
|
|
//图像腐蚀
|
|
DLLEXPORT_API DLL_VOID PixelCorrosionCSharp(Camera_Object_C* camera_obj, int roi_output_size, int *roi_output, PhotoInfoCSharp &target_data, int target_pixel_size);
|
|
//ROI映射区域坐标
|
|
DLLEXPORT_API DLL_VOID ROIMappingCoordinateCSharp(Camera_Object_C* camera_obj,int roi_output_size, int *roi_output, PhotoInfoCSharp &target_data, int target_pixel_size, RoiPoint &point_output);
|
|
//ROI检索映射
|
|
DLLEXPORT_API DLL_VOID ROIPixelMappingCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &point_data, char *point_pixel, int point_pixel_size, PhotoInfoCSharp &source_data,
|
|
char *source_data_pixel, int source_pixel_size, PhotoInfoCSharp &target_data, char *target_data_pixel, int target_pixel_size,
|
|
RoiPoint &roi_input, int ROI_output_size, int *ROI_output);
|
|
//保存点云 with image to pcd
|
|
DLLEXPORT_API DLL_INT SavePointCloudWithImageToTxtCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &point_data_info, char *point_pixel, int point_pixel_size,
|
|
float * rgb_cloud,int rgb_cloud_size, char *path_name);
|
|
//保存与图片融合后的点云Ply
|
|
DLLEXPORT_API DLL_INT SavePointCloudWithImageToPlyCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &point_data_info, char *point_pixel, int point_pixel_size,
|
|
float * rgb_cloud, int rgb_cloud_size, char *path_name);
|
|
//保存与图片融合后的点云Pcd
|
|
DLLEXPORT_API DLL_INT SavePointCloudWithImageToPcdCSharp(Camera_Object_C* camera_obj, PhotoInfoCSharp &point_data_info, char *point_pixel, int point_pixel_size,
|
|
float * rgb_cloud, int rgb_cloud_size, char *path_name);
|
|
/*C#*/
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |