fast/3rdparty/hikvision/rgbd_camera/inc/Mv3dRgbdImgProc.h
2025-01-20 10:30:01 +08:00

159 lines
8.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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_