fast/3rdparty/hikvision/rgbd_camera/inc/Mv3dRgbdImgProc.h

159 lines
8.7 KiB
C
Raw Permalink Normal View History

2025-01-20 10:30:01 +08:00
#ifndef _MV3D_RGBD_IMG_PROC_H_
#define _MV3D_RGBD_IMG_PROC_H_
#include "Mv3dRgbdDefine.h"
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************
* @~chinese
* @brief RGBD相机深度图像转换点云图像
* @param handle [IN]
* @param pstDepthImage [IN]
* @param pstPointCloudImage [OUT]
* @return MV3D_RGBD_OK
* @~english
* @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
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_MapDepthToPointCloud(void* handle, MV3D_RGBD_IMAGE_DATA* pstDepthImage, MV3D_RGBD_IMAGE_DATA* pstPointCloudImage);
/************************************************************************
* @~chinese
* @brief RGBD相机深度图像转换点云图像
* @param pstDepthImage [IN]
* @param pstCalibInfo [IN]
* @param fZunit [IN] (mm)
* @param pstPointCloudImage [OUT]
* @return MV3D_RGBD_OK
* @~english
* @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
************************************************************************/
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);
/************************************************************************
* @~chinese
* @brief
* @param pstInImage [IN]
* @param fZunit [IN] (mm)
* @param pstOutImage [OUT]
* @param pstCameraParam [IN][OUT]
* @return MV3D_RGBD_OK
* @~english
* @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 param
* @return Success, return MV3D_RGBD_OK. Failure,return error code
************************************************************************/
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);
/************************************************************************
* @~chinese
* @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
* @~english
* @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
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SaveImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstImage, Mv3dRgbdFileType enFileType, const char* chFileName);
/************************************************************************
* @~chinese
* @brief
* @param handle [IN]
* @param pstImage [IN]
* @param enPointCloudFileType [IN]
* @param chFileName [IN]
* @return MV3D_RGBD_OK
* @~english
* @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
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SavePointCloudImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstImage, Mv3dRgbdPointCloudFileType enPointCloudFileType, const char* chFileName);
/************************************************************************
* @~chinese
* @brief
* :RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
* :PLY_ASCII
* @param handle [IN]
* @param pstPointCloudImage [IN]
* @param pstTexture [IN]
* @param enPointCloudFileType [IN]
* @param chFileName [IN]
* @return MV3D_RGBD_OK
* @~english
* @brief textured pointcloud image save image to file
* textured image format: RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
* saved pointcloud image format: PLY_ASCII
* @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
************************************************************************/
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);
/************************************************************************
* @~chinese
* @brief RGB图像接口
* :C16
* RGB图格式:RGB8_Planar/YUV422/YUV420SP_NV12/YUV420SP_NV21
* @param handle [IN]
* @param pstImage [IN]
* @param hWnd [IN]
* @return MV3D_RGBD_OK
* @~english
* @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
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_DisplayImage(void* handle, MV3D_RGBD_IMAGE_DATA* pstImage, void* hWnd);
#ifdef __cplusplus
}
#endif
#endif // _MV3D_RGBD_IMG_PROC_H_