290 lines
8.8 KiB
C
290 lines
8.8 KiB
C
#ifndef __VIZUM_RGB_CONFIG_HEADER__
|
||
#define __VIZUM_RGB_CONFIG_HEADER__
|
||
|
||
#include "VZNL_Export.h"
|
||
#include "VZNL_Types.h"
|
||
|
||
|
||
/**
|
||
* @brief 输出RGB图像
|
||
* @param [out] pImage 返回的RGB 图像
|
||
* @param [out] pFrameProps 输出帧的参数
|
||
* @param [in] pParam 回调参数
|
||
* @return 成功返回0,否则为错误码。
|
||
*/
|
||
typedef void(*VzNL_OutputRGBImageCB)(SVzNLImageData* pImage, const SVzOutputFrameProps* pFrameProps, void* pParam);
|
||
|
||
|
||
/**
|
||
* @brief 当前相机是否支持RGB
|
||
* @param hDevice 当前设备句柄
|
||
* @param pnErrorCode 错误信息,如果不需要可填NULL
|
||
* @return VzTrue 表示支持 VzFalse 表示不支持
|
||
*/
|
||
VZNLAPI VzBool VzNL_IsSupportRGBCamera(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 获取原始分辨率
|
||
* @param hDevice [in] 设备Handle
|
||
* @return 关闭成功返回0,否则为错误码
|
||
*/
|
||
VZNLAPI int VzNL_GetRGBResolution(VZNLHANDLE hDevice, SVzVideoResolution* psVideoRes);
|
||
|
||
/**
|
||
* @brief 当前相机是否支持RGB
|
||
* @param hDevice 当前设备句柄
|
||
* @param bEnable VzTrue启用 / VzFalse禁用
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
/// @brief 启用/获取RGB功能
|
||
VZNLAPI int VzNL_EnableRGB(VZNLHANDLE hDevice, VzBool bEnable);
|
||
VZNLAPI VzBool VzNL_IsEnableRGB(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 格式化彩色ROI
|
||
* @param hDevice 当前设备句柄
|
||
* @param psROI[in/out] 想要格式化的ROI大小
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_FormatRGBROI(VZNLHANDLE hDevice, SVzNLROIRect* psROI);
|
||
|
||
/**
|
||
* @brief 配置RGB ROI
|
||
* @param hDevice 当前设备句柄
|
||
* @param psROI 想要设置的ROI大小
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBROI(VZNLHANDLE hDevice, const SVzNLROIRect* psROI);
|
||
VZNLAPI int VzNL_GetRGBROI(VZNLHANDLE hDevice, SVzNLROIRect* psROI);
|
||
|
||
/**
|
||
* @brief 启用/获取 自动白平衡
|
||
* @param hDevice 当前设备句柄
|
||
* @param bEnable 启用 VzTrue /禁用 VzFalse 白平衡
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_EnableRGBAWB(VZNLHANDLE hDevice, VzBool bEnable);
|
||
VZNLAPI VzBool VzNL_IsEnableRGBAWB(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置/获取 自动曝光状态
|
||
* @param hDevice 当前设备句柄
|
||
* @param bEnable 启用 VzTrue / 禁用 VzFalse
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_EnableRGBAutoExpose(VZNLHANDLE hDevice, VzBool bEnable);
|
||
VZNLAPI VzBool VzNL_IsEnableRGBAutoExpose(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置R Value
|
||
* @param hDevice 当前设备句柄
|
||
* @param fValue R分量值
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBRValue(VZNLHANDLE hDevice, float fValue);
|
||
VZNLAPI float VzNL_GetRGBRValue(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置G Value
|
||
* @param hDevice 当前设备句柄
|
||
* @param fValue G分量值
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBGValue(VZNLHANDLE hDevice, float fValue);
|
||
VZNLAPI float VzNL_GetRGBGValue(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置B Value
|
||
* @param hDevice 当前设备句柄
|
||
* @param fValue B分量值
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBBValue(VZNLHANDLE hDevice, float fValue);
|
||
VZNLAPI float VzNL_GetRGBBValue(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置彩色Sensor帧率
|
||
* @param hDevice 当前设备句柄
|
||
* @param nValue 帧率
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBFrameRate(VZNLHANDLE hDevice, unsigned int nValue);
|
||
VZNLAPI unsigned int VzNL_GetRGBFrameRate(VZNLHANDLE hDevice, int* pErrorCode);
|
||
|
||
/**
|
||
* @brief 设置彩色Sensor曝光
|
||
* @param hDevice 当前设备句柄
|
||
* @param nValue 曝光值[20~100000]
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBExpose(VZNLHANDLE hDevice, unsigned int nValue);
|
||
VZNLAPI unsigned int VzNL_GetRGBExpose(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置彩色sensor增益
|
||
* @param hDevice 当前设备句柄
|
||
* @param nValue 设置增益值
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBGain(VZNLHANDLE hDevice, unsigned int nValue);
|
||
VZNLAPI unsigned int VzNL_GetRGBGain(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置RGBSensor触发方式
|
||
* @param hDevice 当前设备句柄
|
||
* @param eTriggerMode 触发模式
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBTriggerMode(VZNLHANDLE hDevice, EVzEyeTriggerMode eTriggerMode);
|
||
VZNLAPI EVzEyeTriggerMode VzNL_GetRGBTriggerMode(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置彩色Sensor期望值
|
||
* @param hDevice 当前设备句柄
|
||
* @param fExposeThres 期望值[1~255]
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
/// @brief
|
||
VZNLAPI int VzNL_SetRGBAutoExposeThres(VZNLHANDLE hDevice, float fExposeThres);
|
||
VZNLAPI float VzNL_GetRGBAutoExposeThres(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 生成一个RGB信号
|
||
* @param hDevice 当前设备句柄
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_GenRGBSoftSignal(VZNLHANDLE hDevice);
|
||
|
||
/**
|
||
* @brief 设置CCM
|
||
* @param hDevice 当前设备句柄
|
||
* @param dCCMVal CCM值
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBColorCortectMatrix(VZNLHANDLE hDevice, double dCCMVal[3][3]);
|
||
VZNLAPI int VzNL_GetRGBColorCortectMatrix(VZNLHANDLE hDevice, double dCCMVal[3][3]);
|
||
|
||
/**
|
||
* @brief 自动计算RGBD异步参数
|
||
* @param hDevice 当前设备句柄
|
||
* @param dCCMVal CCM值
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_AutoCalcRGBAsyncParam(VZNLHANDLE hDevice);
|
||
|
||
/**
|
||
* @brief 启用输出RGB 2D数据
|
||
* @param hDevice [in] 设备Handle
|
||
* @param bEnable [in] 启用为VzTrue,关闭为VzFalse
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_EnableOutputColor2D(VZNLHANDLE hDevice, VzBool bEnable);
|
||
|
||
/**
|
||
* @brief 获取中间相机的RGB单帧图像
|
||
* @param hDevice [in] 设备Handle
|
||
* @param ppRGBImage [out] RGB图像
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_GetRGBImage(VZNLHANDLE hDevice, SVzNLImageData** ppRGBImage);
|
||
|
||
|
||
/**
|
||
* @brief 通过3d点获取RGB图像的2d点坐标
|
||
* @param hDevice [in] 设备Handle
|
||
* @param s3DPoint [in] 3d点
|
||
* @param ps2DPoint [in/out] 2d点
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_CalcColor2DFrom3D(VZNLHANDLE hDevice, const SVzNL3DPoint s3DPoint, SVzNL2DPoint* ps2DPoint);
|
||
|
||
/**
|
||
* @brief 获取RGB 相机内参及转换矩阵
|
||
* @detail 获取RGB相机内参数据及相机左目坐标系(3D坐标系)到RGB 图像坐标系的转换矩阵
|
||
* @param [Out] fIntrinsic: 输出RGB相机内参: 3*3 矩阵;
|
||
* @param [Out] fCalibMatrix: 输出转换矩阵: 4*4 矩阵;
|
||
* @param [Out] pResolution: 输出RGB图像分辨率,MapData 尺寸与此相同;
|
||
* @param [Out] ppMapData: 输出RGB图像Map数据,用于进行校正图与原图的转换;
|
||
* @return 成功返回0,否则为其他错误码
|
||
*/
|
||
VZNLAPI int VZNL_GetRGBCalibParam(VZNLHANDLE hDevice, float fIntrinsic[9], float fCalibMatrix[16],
|
||
SVzVideoResolution* pResolution, SVzNL2DPointShortU** ppMapData);
|
||
/**
|
||
* @brief 释放获取的RGB Map数据
|
||
* @detail 释放由GetRGBCalibParam() 接口获取的Map数据;
|
||
* @param [In] ppMapData: 由GetRGBCalibParam() 接口输出的Map 数据;
|
||
* @return 成功返回0,否则为其他错误码
|
||
*/
|
||
VZNLAPI int VZNL_ReleaseRGBMapData(VZNLHANDLE hDevice, SVzNL2DPointShortU** ppMapData);
|
||
|
||
/**
|
||
* @brief 是否支持RGB HDR功能
|
||
* @param [in] hDevice 设备句柄
|
||
* @param [in] pnErrorCode 错误码,为nullptr时不返回
|
||
* @return 返回VzTrue表示支持,否则为不支持。
|
||
*/
|
||
VZNLAPI VzBool VzNL_IsSupportRGBHDR(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 使能彩色sensor hdr功能
|
||
* @param hDevice 当前设备句柄
|
||
* @param bEnable VzTrue启用 / VzFalse禁用
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_EnableRGBHDR(VZNLHANDLE hDevice, VzBool bEnable);
|
||
VZNLAPI VzBool VzNL_IsEnableRGBHDR(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置彩色Sensor hdr 高曝光
|
||
* @param hDevice 当前设备句柄
|
||
* @param nValue 曝光值[20~100000]
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBHDRHighExpose(VZNLHANDLE hDevice, unsigned int nValue);
|
||
VZNLAPI unsigned int VzNL_GetRGBHDRHighExpose(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置彩色Sensor hdr 低曝光
|
||
* @param hDevice 当前设备句柄
|
||
* @param nValue 曝光值[20~100000]
|
||
* @return 正确返回0, 失败返回其他值
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBHDRLowExpose(VZNLHANDLE hDevice, unsigned int nValue);
|
||
VZNLAPI unsigned int VzNL_GetRGBHDRLowExpose(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/**
|
||
* @brief 设置熔池检测区域
|
||
* @param [in] hDevice 设备句柄
|
||
* @param [in] pROIArea RGB ROI区域
|
||
* @return 返回错误码
|
||
*/
|
||
VZNLAPI int VzNL_ConfigMoltenPoolROI(VZNLHANDLE hDevice, const SVzNLROIRect* pROIArea);
|
||
VZNLAPI int VzNL_GetConfigMoltenPoolROI(VZNLHANDLE hDevice, SVzNLROIRect* pROIArea);
|
||
|
||
|
||
/**
|
||
* @brief 设置RGBHDR 出图模式
|
||
* @param hDevice 当前设备句柄
|
||
* @param nMode 输出图像模式:原图,HDR图,背景图,熔池图
|
||
* @return 正确返回0, 失败返回返回错误码
|
||
*/
|
||
VZNLAPI int VzNL_SetRGBHDRImageMode(VZNLHANDLE hDevice, EVzRGBHDROutImageMode eMode);
|
||
VZNLAPI EVzRGBHDROutImageMode VzNL_GetRGBHDRImageMode(VZNLHANDLE hDevice, int* pnErrorCode);
|
||
|
||
/*
|
||
* @brief 开始实时采集RGB图像
|
||
* @param [in] hDevice 设备Handle
|
||
* @param [in] pImageCB 图像回调接口
|
||
* @param [in] pCBParam 回调接口参数
|
||
* @return 调用接口成功返回0
|
||
*/
|
||
VZNLAPI int VzNL_StartRGBCapture(VZNLHANDLE hDevice, VzNL_OutputRGBImageCB pImageCB, void* pCBParam);
|
||
|
||
/**
|
||
* @brief 停止实时采集RGB图像
|
||
* @param [in] hDevice 设备Handle
|
||
* @return 调用接口成功返回0
|
||
*/
|
||
VZNLAPI int VzNL_StopRGBCapture(VZNLHANDLE hDevice);
|
||
|
||
#endif |