HxNvr/resources/libraries/MvObjectEventDetect.h

740 lines
28 KiB
C
Raw Normal View History

2024-02-01 18:28:27 +08:00
/*
* 2015 ()
* Copyright (c) 2015,Motovis Intelligent Technologies (Shanghai) Co.,Ltd
*
* Motovis Intelligent Confidential Proprietary
* MvObjectEventDetect.h
*
* v1.0.0.0
* :
* 2019123
*/
#ifndef _OBJECT_EVENT_DETECT_H_
#define _OBJECT_EVENT_DETECT_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define EVENT_WARN_NUM 26 //报警类型种类
#define EVENT_ADAS_WARN_NUM 7 //adas报警类型种类
#define EVENT_DSM_WARN_NUM 15 //dsm报警类型种类
//数据通道类型
typedef enum _DETECT_CHANNEL_TYPE_
{
ADAS_DETECT_CHANNEL = 1, //adas数据通道
RIGHT_BSD_FRONT_DETECT_CHANNEL = 2, //右侧bsd(非鱼眼)--右前 从前往后
DMS_DETECT_CHANNEL = 4, //dms数据通道
RIGHT_BSD_REAR_DETECT_CHANNEL = 8, //右侧bsd(非鱼眼)--右后 从后往前
LEFT_BSD_FRONT_DETECT_CHANNEL = 0x10, //左侧bsd(非鱼眼)--左前
LEFT_BSD_REAR_DETECT_CHANNEL = 0x20, //左侧bsd(非鱼眼)--左后
FRONT_BSD_DETECT_CHANNEL = 0x40, //前侧bsd(非鱼眼)
REAR_BSD_DETECT_CHANNEL = 0x80 //后侧bsd(非鱼眼)
}DetectChannelType;
//数据功能类型
typedef enum _DETECT_FUNCTION_TYPE_
{
ADAS_FUNCTION_TYPE = 1, //adas类型
BSD_FUNCTION_TYPE = 2, //bsd功能类型
DSM_FUNCTION_TYPE = 4, //dsm功能类型
SECOND_BSD_FUNCTION_TYPE = 8, //第2bsd功能类型(bsd2)
BELT_FUNCTION_TYPE = 0x10, //安全带功能类型(dsm2)
OVERBOARD_FUNCTION_TYPE = 0x20, //超员功能类型
IMAGEFUSION_FUNCTION_TYPE = 0x40, //360图像融合功能类型
CARGO_FUNCTION_TYPE = 0x80, //货箱功能类型
ALIVE_FUNCTION_TYPE = 0x100, //活体功能类型
FACE_COUNT_FUNCTION_TYPE = 0x200, //人头计数功能类型
THIRD_BSD_FUNCTION_TYPE = 0x400, //第3bsd功能类型(bsd3)
FOURTH_BSD_FUNCTION_TYPE = 0x800 //第4bsd功能类型(bsd4)
}DetectFunctionType;
//bsd安装类型
typedef enum _BSD_INSTALL_TYPE_
{
BSD_RIGHT = 0, //右
BSD_FRONT = 1, //前
BSD_LEFT = 2, //左
BSD_BACK = 3 //后
}BsdInstallType;
//bsd车身位置
typedef enum _BSD_CARPOS_TYPE_
{
BSD_CARPOS_LEFT = 0, //左
BSD_CARPOS_RIGHT = 1, //右
BSD_CARPOS_UP = 2, //上
BSD_CARPOS_DOWN = 3 //下
}BsdCarPosType;
//bsd相机类型
typedef enum _BSD_CAMERA_TYPE_
{
BSD_CAMERA_NOFISHEYE = 0, //非鱼眼
BSD_CAMERA_FISHEYE = 1 //鱼眼
}BsdCameraType;
//视频图像帧信息
typedef struct _VideoFrameDataInfo
{
int nFrameId; //帧号
int u32Width; //视频图像宽
int u32Height; //视频图像高
long long u64PTS; //时间戳(毫秒)
unsigned char* pu8VirAddr; //视频图像帧数据虚拟地址
}VideoFrameDataInfo;
//标定点坐标
typedef struct _CalibrationPoint
{
int x; //X坐标
int y; //Y坐标
}CalibrationPoint;
//标定点坐标
typedef struct _CalibrationFloatPoint
{
float x; //X坐标
float y; //Y坐标
}CalibrationFloatPoint;
//自标定矩形区域
typedef struct _CalibrationRectRegion
{
int x; //X坐标
int y; //Y坐标
int nWidth; //宽
int nHeight; //高
}CalibrationRectRegion;
//360标定错误返回信息
typedef struct _CalibrationErrorInfo
{
float fDeviation[4]; //每路相机的标定误差,顺序分别是0-前, 1-右, 2-后, 3-左
int nRet[4][2]; //每路相机每块标定布自标定返回值
}CalibrationErrorInfo;
//虚拟线坐标点
typedef struct _VirtualLinePoint
{
CalibrationPoint ptBegin; //起点坐标
CalibrationPoint ptEnd; //终点坐标
}VirtualLinePoint;
//目标类型
typedef enum _ObjectDetectType
{
NONE_TYPE = 0, //未知类型
PEDESTRIAN_TYPE = 1, //行人
CAR_TYPE = 2, //小型汽车
BUS_TYPE = 3, //大巴
TRUCK_TYPE = 4, //卡车
MIDBUS_TYPE = 5, //中巴
MOTO_TYPE = 6, //机动车
NOMOTO_TYPE = 7 //非机动车
}ObjectDetectType;
//报警事件类型
typedef enum _ObjectEventType
{
EVENT_NONE = 0, //无报警
EVENT_LDW_LEFT = 1, //向左车道偏离报警
EVENT_LDW_RIGHT = 2, //向右车道偏离报警
EVENT_FCW = 4, //前车碰撞报警
EVENT_PCW = 8, //行人碰撞报警
EVENT_HMW = 0x10, //车距监测报警
EVENT_CROSS_WALK = 0x20, //人行横道检测报警
EVENT_BLIND = 0x40, //右侧盲区报警
EVENT_SMOKE = 0x80, //抽烟
EVENT_CALL = 0x100, //打电话
EVENT_YAWN = 0x200, //打哈欠
EVENT_NO_ALIGNMENT = 0x400, //未对准(偏离座位)
EVENT_CAMERA_SHIELD = 0x800, //摄像头遮挡
EVENT_ABNORMAL_IDENTITY = 0x1000, //身份异常(不是原来的驾驶员)
EVENT_ABSENT_DRIVER = 0x2000, //异常驾驶(检测不到脸)
EVENT_EYES_MASKED = 0x4000, //阻断型墨镜
EVENT_MOUTH_MASKED = 0x8000, //嘴部遮挡
EVENT_EYE_CLOSING = 0x10000, //闭眼
EVENT_SWINGING_LEFT = 0x20000, //分神驾驶(东张)
EVENT_SWINGING_RIGHT = 0x40000, //分神驾驶(西望)
EVENT_HEAD_UP = 0x80000, //分神驾驶(仰望)
EVENT_HEAD_DOWN = 0x100000, //分神驾驶(低头)
EVENT_NORMAL_IDENTITY = 0x200000, //身份正常
EVENT_ABNORMAL_BELT = 0x400000, //未系安全带
EVENT_ABNORMAL_HAND = 0x800000, //手脱离方向盘
EVENT_ABNORMAL_PHONE = 0x1000000, //玩手机
EVENT_ABNORMAL_OVERBOARD = 0x2000000 //超员
}ObjectEventType;
//车道线类型
typedef enum _LaneType
{
OTHER_LINE = 0, //其他车道线类型
WHITE_SOLID_LINE = 1, //白实线
YELLOW_SOLID_LINE = 2, //黄实线
DOUBLE_YELLOW_LINE = 3, //双黄线
DOUBLE_WHITE_LINE = 4 //双白线
}LaneType;
//目标信息
typedef struct _ObjectPara
{
int nObjectId; //目标编号
ObjectDetectType nDetectType; //目标类型
int nLeft; //目标位置左
int nTop; //目标位置上
int nRight; //目标位置右
int nBottom; //目标位置下
float fDist; //每个目标的距离(单位m最大值250最小值0)
float fVelo; //相对运动目标的相对速度(单位m/s)
float fTTC; //ttc时间(单位s)
int nTargetPosX; //落脚点横坐标bsd用
int nTargetPosY; //落脚点纵坐标bsd用
}ObjectPara;
//目标跟踪报警结果
typedef struct _ObjectTrackEventResult
{
int nFrameId; //图像帧号
long long lTimeStamp; //时间戳(毫秒)
int nObjectNumber; //目标数目
ObjectPara objInfo[255]; //目标信息
ObjectEventType nEventType; //报警事件类型
int nMainObjectId; //主目标编号
int nWarnFrameId[10]; //报警图像帧号
int nWarnFrameIdCount; //实际报警图像帧号数目
int nDangerLevel; //报警等级,1表示最高危险报警,2表示次高危险报警,3表示第三高危险报警
CalibrationPoint tFirstAlarmPoint[4]; //一级告警区域bsd用
CalibrationPoint tSecondAlarmPoint[4]; //二级预警区域bsd用
CalibrationPoint tThirdAlarmPoint[4]; //三级预警区域bsd用
int nFaceLandMarksNum; //人脸关键点
CalibrationPoint tFaceLandMarks[68]; //人脸关键点
LaneType nLeftLineType; //左车道线类型
LaneType nRightLineType; //右车道线类型
}ObjectTrackEventResult;
//车身信息
typedef struct _CarInfoInput
{
float fVelocity; //车速,单位: km/h
float fAcceleration; //车辆加速度 >0表示加速度,单位:m/s2
float fDeceleration; //车辆减速度 0表示速度为0或正在加速度 其他值表示减速度值,单位:m/s2
int nBrake; //刹车,1刹车 0未刹车
int nLLight; //左转向灯,1、点亮 0、不亮
int nRLight; //右转向灯,1、点亮 0、不亮
float fAlpha; //转向角,单位:度
float fSteeingWheelAngle; //方向盘转角,单位:度
}CarInfoInput;
//事件检测配置信息
typedef struct _ObjectEventDetectConfig
{
char szAdasDetectConfigPathName[256]; //adas检测配置
char szAdasTrackConfigPathName[256]; //adas跟踪配置
char szBsdDetectConfigPathName[256]; //右视非鱼眼bsd检测配置(从后往前)
char szRightBsdFrontDetectConfigPathName[256]; //右视非鱼眼bsd检测配置(从前往后)
char szFrontBsdDetectConfigPathName[256]; //前视bsd检测配置
char szRearBsdDetectConfigPathName[256]; //后视bsd检测配置
char szRightFisheyeBsdDetectConfigPathName[256]; //右视鱼眼bsd检测配置
char szBeltDetectConfigPathName[256]; //安全带检测配置
char szOverBoardDetectConfigPathName[256]; //超员检测配置
char szDsmFaceDetectConfigPathName[256]; //dsm人脸检测配置
char szDsmFaceLandMarksDetectConfigPathName[256]; //dsm人脸特征点检测配置
char szDsmFaceVerificationDetectConfigPathName[256]; //dsm人脸认证检测配置
char szDsmFaceFeaturePathName[256]; //dsm人脸特征存储路径配置
char szDsmHeadPoseConfPathName[256]; //dsm头部位姿配置
char szDsmEyeLandMarksDetectConfigPathName[256]; //dsm人眼特征点检测配置
char szDsmMaskDetectConfigPathName[256]; //口罩墨镜检测配置
char szDsmSmokeConfPathName[256]; //抽烟检测配置
char szDsmCallConfPathName[256]; //电话检测配置
char szDsmAliveDetectConfigPathName[256]; //活体检测配置
char szTsrDetectConfigPathName[256]; //tsr检测配置
char szLutTablePathName[256]; //360图像融合标定配置
char szCarPathName[256]; //车辆图像配置
char szCameraIntrinsicPathName[256]; //360相机内参配置
}ObjectEventDetectConfig;
//相机内外参
typedef struct _CameraCalibration
{
int fCarLen; //车长单位mm
int fCarWidth; //车宽(两个轮胎外侧之间的距离)单位mm
int fRefCenter; //相机与车辆中心之间的距离(从驾驶室往外看,左正右负)单位mm
int fRefTop; //相机到前保险杠距离单位mm
int fDisLen2Tyre; //镜头和前轮胎之间的距离单位mm,镜头前方为正向
int fCameraHeight; //相机距离地面高度单位mm
float fCameraFocus; //相机焦距单位mm
float fCameraDx; //sensor尺寸(像平面离散化系数CMOS unit cell size, 单位mm)
float fPitch; //俯仰角默认为0
float fYaw; //偏航角默认为0
}CameraCalibration;
//bsd报警区域
typedef struct _BsdWarnRegion
{
CalibrationPoint tFirstRegionPoint[4]; //一级报警区域4个点组成的任意四边形
CalibrationPoint tSecondRegionPoint[4]; //二级报警区域4个点组成的任意四边形
CalibrationPoint tThirdRegionPoint[4]; //三级报警区域4个点组成的任意四边形
}BsdWarnRegion;
//bsd报警距离
typedef struct _BsdWarnDistance
{
float fFirstWarnDistance; //一级报警距离(单位:mm)
float fSecondWarnDistance; //二级报警距离(单位:mm)
float fThirdWarnDistance; //三级报警距离(单位:mm)
float fFrontWarnDistance; //前方报警距离(单位:mm)
float fLeftWarnDistance; //左报警距离(单位:mm)
float fRightWarnDistance; //右报警距离(单位:mm)
}BsdWarnDistance;
//事件报警参数配置
typedef struct _EventWarnParamConfig
{
bool bStartEventWarnKind[EVENT_WARN_NUM]; //是否启动此类报警,一共21种报警类型0表示EVENT_LDW_LEFT20表示EVENT_HEAD_DOWN顺序与ObjectEventType宏定义一致
int nAbnormalWarnFrameCount[EVENT_WARN_NUM]; //累积多长时间开始报警,用帧数来表示(主要针对dsm)
int nNormalFrameCount[EVENT_WARN_NUM]; //累积多长时间恢复正常,用帧数来表示(主要针对dsm)
int nAbnormalWarnIntervalFrameCount[EVENT_WARN_NUM]; //间隔多长时间进行下一次报警,用帧数来表示(主要针对dsm)
float fAbnormalWarnScoreThreshold[EVENT_WARN_NUM]; //每种异常报警阈值,0-1之间0表示更容易触发报警1表示更难触发报警(主要针对dsm)
float fNormalWarnScoreThreshold[EVENT_WARN_NUM]; //每种报警恢复正常阈值,0-1之间0表示更容易恢复正常1表示更难恢复正常(主要针对dsm)
int nHmwTime; //HMW开启阈值,单位ms
int nPcwTime; //PCW开启阈值,单位ms
int nFcwTime; //FCW报警开启阈值,单位ms
float fHmwVel; //HMW报警车速阈值,单位km/h
float fFcwVel; //FCW报警车速阈值,单位km/h
float fLdwVel; //LDW报警车速阈值,单位km/h
float fPcwVel; //PCW报警车速阈值,单位km/h
float fBsdFirstVel; //BSD一级报警车速阈值,单位km/h
float fBsdSecondVel; //BSD二级报警车速阈值,单位km/h
float fBsdThirdVel; //BSD三级报警车速阈值,单位km/h
int nLdwDistance; //左右车道线距离报警阈值,单位cm(范围:-20cm~20cm越过车道线为负)
float fDsmVel; //DSM报警车速阈值,单位km/h
}EventWarnParamConfig;
//车道线的点阵列(最多四条车道线)
typedef struct _DARW_POINT_INFO
{
unsigned int pSrcPointX[4][600]; //每条车道线的点x坐标
unsigned int pSrcPointY[4][600]; //每条车道线的点y坐标
unsigned int nPointCounters[4]; //每条车道线的点数
int nLaneID[4]; //车道线编号(-1表示不存在此车道线,0,1,2,3表示从左往右的四条车道线)
}DrawPointInfo;
//人脸特征信息
typedef struct _FACE_FEATURE_INFO
{
float fFaceFeature[512]; //人脸特征
int nFaceNum; //人脸数目
int nLeft; //人脸位置左
int nTop; //人脸位置上
int nRight; //人脸位置右
int nBottom; //人脸位置下
int nErrorCode; //错误类型,0-成功1-提取特征失败2-无人脸3-人脸太偏
}FaceFeatureInfo;
//bsd路沿点阵列
typedef struct _CURB_POINT_INFO
{
unsigned int pSrcPointX[600];
unsigned int pSrcPointY[600];
unsigned int nPointCounters;
}CurbPointInfo;
//360相机外参
typedef struct _FisheyeCameraCalibration
{
///////////////////////////以下是相机外参,棋盘格必须保证相对车辆左右对称,上下平齐
float fCarLen; //车长单位mm
float fCarWidth; //车宽(两个轮胎外侧之间的距离)单位mm
float fFrontDistance; //车头到棋盘格的纵向距离单位mm, 默认1000mm
float fRearDistance; //车尾到棋盘格的纵向距离单位mm, 默认1000mm
float fLeftDistance; //车左侧到棋盘格的横向距离单位mm, 默认(2000-fCarWidth/2)mm
float fRightDistance; //车右侧到棋盘格的横向距离单位mm, 默认(2000-fCarWidth/2)mm
float fVisionField; //视野范围单位mm大车默认20000mm, 模型车8000mm
float fBigChessBoardWidth; //大棋盘格宽度单位mm, 默认800mm(如果是缩小版的棋盘格80mm)
float fSmallChessBoardWidth; //小棋盘格高度单位mm, 默认400mm(如果是缩小版的棋盘格40mm)
float fFusionAngle; //融合角度,默认60度
}FisheyeCameraCalibration;
/*
* :
* :pAlglibVersion-
* :pAlglibVersion-
* :0--1-
*/
int MvGetAlglibVersion(char* pAlglibVersion);
//算法结果回调函数
typedef void (*AlgResultProcessFunc)(int nDataChannel, ObjectTrackEventResult* pObjectTrackEventResult, void *pPrivData);
//车道线结果回调函数
typedef void (*AlgLaneLineProcessFunc)(DrawPointInfo* pPointInfo, void *pPrivData);
/*
* :
* :pObjectEventDetectConf-,nStartDetectChannel-nStartDetectChannel=ADAS_DETECT_CHANNEL|BSD_DETECT_CHANNEL|DMS_DETECT_CHANNEL
* :
* :0--1-
*/
int MvObjectEventDetectInit(ObjectEventDetectConfig *pObjectEventDetectConf, int nStartDetectChannel);
/*
* :
* :nDataChannel-0-adas,1-bsd(),2-dsm,3-bsd(),4-belt pFunc--, pPrivData-
* :
* :0--1-
*/
int MvSetAlgResultFuncCallback(int nDataChannel,AlgResultProcessFunc pFunc, void *pPrivData);
/*
* :线
* :pFunc--线, pPrivData-
* :
* :0--1-
*/
int MvSetAlgLaneLineFuncCallback(AlgLaneLineProcessFunc pFunc, void *pPrivData);
/* 函数功能:目标跟踪事件检测(每帧循环调用,结果在回调函数中返回)
* :nDataChannel-0-adas,1-bsd(),2-dsm,3-bsd(),4-belt pImageDataInfo--(adas,bsd:1280*720,dsm:1280*720), pCarInfo-
* :
* :0--1-
*/
int MvObjectEventDetect(int nDataChannel, VideoFrameDataInfo* pImageDataInfo, CarInfoInput* pCarInfo);
/*
* :
* :
* :
* :0--1-
*/
int MvObjectEventDetectUnInit();
////////////////////////////////////////////////////////////////////////////
/*
* :()
* :pCameraCalibration-
* :
* :0--1-
*/
int MvCameraCalibration(CameraCalibration* pCameraCalibration);
/*
* :
* :pCameraCalibration-
* :
* :0--1-
*/
int MvAutoCameraCalibration(CameraCalibration* pCameraCalibration);
/*
* :(4,adas通道会用到)
* :pCameraCalibration-,pCalibrationPoint-4
* :
* :0--1-
*/
int MvManualCameraCalibration(CameraCalibration* pCameraCalibration, CalibrationPoint* pCalibrationPoint);
/*
* :
* :pCameraCalibration-
* :
* :0--1-
*/
int MvGetCameraCalibrationInfo(CameraCalibration* pCameraCalibration);
/*
* :
* :
* :
* :0-,1-
*/
int MvGetSelfCalibrationStatus();
/*
* :
* :
* :pCalibrationPoint-(1280x720图像坐标)
* :
*/
void MvGetVanishPoint(CalibrationPoint* pCalibrationPoint);
/*
* :
* :pCalibrationPoint-(1280x720图像坐标)
* :
* :0--1-
*/
int MvSetVanishPoint(CalibrationPoint* pCalibrationPoint);
////////////////////////////////////////////////////////////////////////////
/*
* :bsd报警区域
* :nDataChannel-1-bsd(),3-bsd(),pBsdWarnRegion-bsd报警区域
* :
* :0--1-
*/
int MvSetBsdWarnRegion(int nDataChannel, BsdWarnRegion* pBsdWarnRegion);
/*
* :bsd相机标定
* :nDataChannel-1-bsd(),3-bsd(),pCameraCalibration-,pVanishPoint-,pBsdWarnDistance-bsd报警距离
* :pBsdWarnRegion-bsd报警区域
* :0--1-
*/
int MvBsdCalibration(int nDataChannel, CameraCalibration* pCameraCalibration, CalibrationPoint* pVanishPoint, BsdWarnDistance* pBsdWarnDistance, BsdWarnRegion* pBsdWarnRegion);
/*
* :bsd灭点位置
* :pBsdVanishPt-bsd灭点位置
* :
* :0--1-
*/
int MvGetBsdVanishPoint(int nDataChannel, CalibrationPoint* pBsdVanishPt) ;
/*
* :
* :tRegionPoint-
* :
* :0--1-
*/
int MvSetOverBoardWarnRegion(CalibrationPoint tRegionPoint[4]);
////////////////////////////////////////////////////////////////////////////
/*
* :dsm检测区域起始位置
* :pCropPoint-dsm检测区域起始位置
* :
* :0--1-
*/
int MvSetDsmCropPosition(CalibrationPoint* pCropPoint);
/*
* :dsm检测区域位置
* :
* :pPointLeftTop-dsm检测区域左上位置pPointRightBottom-dsm检测区域右下位置
* :0--1-
*/
int MvGetDsmCropRegion(CalibrationPoint* pPointLeftTop, CalibrationPoint* pPointRightBottom);
/*
* :jpg人脸特征
* :pJpgImageData-jpg图像地址,nJpgImageDataLen-jpg图像大小
* :pFaceFeatureInfo-jpg人脸特征信息
* :0--1-
*/
int MvGetJpgFaceFeature(unsigned char* pJpgImageData, int nJpgImageDataLen, FaceFeatureInfo* pFaceFeatureInfo);
/*
* :
* :pImageDataInfo-
* :pFaceFeatureInfo-
* :0--1-
*/
int MvGetFaceFeature(VideoFrameDataInfo* pImageDataInfo, FaceFeatureInfo* pFaceFeatureInfo);
/*
* :
* : pFaceFeatureInfo1-,nFeatureNum1-,pFaceFeatureInfo2-,nFeatureNum2-
* :
* : 0-(),-1- ()
*/
int MvGetFaceVerifyResult(FaceFeatureInfo* pFaceFeatureInfo1, int nFeatureNum1, FaceFeatureInfo* pFaceFeatureInfo2, int nFeatureNum2);
/*
* : DSM标定信息
* :
* : pYaw-()pPitch-()
* : 0-,-1-
*/
int MvGetDsmCalibration(float* pYaw, float* pPitch);
/*
* : DSM标定信息
* :
* : fYaw-()fPitch-()
* : 0-,-1-
*/
int MvSetDsmCalibration(float fYaw, float fPitch);
/*
* : DSM标定
* :
* : pPointLeftTop-dsm检测区域左上位置,fYaw-()fPitch-()
* : 0-,-1-
*/
int MvDsmCalibration(CalibrationPoint* pPointLeftTop, float* pYaw, float* pPitch);
/*
* :()
* :pEventWarnParamConfig-
* :
* :0--1-
*/
int MvSetEventWarnParamConfig(EventWarnParamConfig *pEventWarnParamConfig);
/*
* :()
* :
* :pEventWarnParamConfig-
* :0--1-
*/
int MvGetEventWarnParamConfig(EventWarnParamConfig *pEventWarnParamConfig);
/*
* :
* :bPrintf-
* :
* :0--1-
*/
int MvSetPrintf(bool bPrintf);
/*
* :()
* :szSignPath-
* :
* :0--1-
*/
int MvSetSignPath(char szSignPath[256]);
/*
* :()
* :szAuthHost-
* :
* :0--1-
*/
int MvSetAuthHost(char szAuthHost[256]);
/*
* :
* :
* :
* :0--1-
*/
int MvGetAuthStatus();
/*
* : ID
* : pChipId-ID,32
* :
* : 0-,-1-
*/
int MvGetAuthChipId(unsigned char* pChipId);
/*
* :线
* :fDistance-线(:mm,10),fLaneWidth-(:mm,3)
* :pLinePoint-线
* :0--1-
*/
int MvGetDistanceLine(float fDistance, float fLaneWidth, VirtualLinePoint* pLinePoint);
/*
* :线
* :fNearDistance-线(:mm,10),fFarDistance-线(:mm,30),fLaneWidth-(:mm,3)
* :pLeftLinePoint-线pRightLinePoint-线
* :0--1-
*/
int MvGetVirtualLaneLine(float fNearDistance, float fFarDistance, float fLaneWidth, VirtualLinePoint* pLeftLinePoint, VirtualLinePoint* pRightLinePoint);
/*
* :
* :
* :
* :fDistance-(:mm)
*/
float MvGetNearDistance();
/*
* :fcw报警灵敏
* :nFcwSensitivity-0-,1-,2-
* :
* :0--1-
*/
int MvSetFcwWarnSensitivity(int nFcwSensitivity);
/*
* :
* :
* :
* :
*/
int MvGetAuthFunctionType();
/*
* : imei ID
* : chImeiId-ID,16,
* :
* : 0-,-1-
*/
int MvSetImeiId(unsigned char chImeiId[16]);
/*
* :dsm标定模式
* :nMode-0-1-, fVelocityThreshold-,fTimeThreshold-,fAngleThreshold-
* :
* :0--1-
*/
int MvSetDsmCalibrationMode(int nMode, float fVelocityThreshold, float fTimeThreshold, float fAngleThreshold);
/* 函数功能:360图像融合
* :pInImageDataInfo--4(1280*720),0-, 1-, 2-, 3-, 4,pCarInfo-
* :pOutImageDataInfo-(640x640),
* :0--1-
*/
int MvImageFusion(VideoFrameDataInfo* pInImageDataInfo[4], VideoFrameDataInfo* pOutImageDataInfo, CarInfoInput* pCarInfo);
/* 函数功能:360图像融合标定
* :pCalibrationConfigPathName-,pInImageDataInfo--4(1280*720),0-, 1-, 2-, 3-,pCameraCalibration-,pImagePoints[4][8]-nMode-0,1,pCalibrationRectRegion-
* :pDeviation->10, pErrorInfo-360,pOutImageDataInfo-
* :0--1-
*/
int MvImageFusionCalibration(char* pCalibrationConfigPathName, VideoFrameDataInfo* pInImageDataInfo[4], FisheyeCameraCalibration* pCameraCalibration, CalibrationFloatPoint* pImagePoints, int nMode,float* pDeviation, CalibrationRectRegion* pCalibrationRectRegion, CalibrationErrorInfo* pErrorInfo, VideoFrameDataInfo* pOutImageDataInfo);
/*
* :
* :nStartDetectChannel-nStartDetectChannel=ADAS_FUNCTION_TYPE|BSD_FUNCTION_TYPE|DSM_FUNCTION_TYPE|SECOND_BSD_FUNCTION_TYPE,nMode-0-1-
* :
* :0--1-
*/
int MvReAuthorization(int nStartDetectChannel);
/*
* :
* :bConnectAuthServer-1-, 0-
* :
* :0--1-
*/
int MvConnectAuthServer(bool bConnectAuthServer);
/*
* :tsr检测
* :bSetTsrDetect-tsr检测
* :
* :0--1-
*/
int MvSetTsrDetect(bool bSetTsrDetect);
/*
* :(4)
* :nDetectChannel-nDetectChannel=RIGHT_BSD_FRONT_DETECT_CHANNEL|RIGHT_BSD_REAR_DETECT_CHANNEL|LEFT_BSD_FRONT_DETECT_CHANNEL|LEFT_BSD_REAR_DETECT_CHANNEL
* :
* :0--1-
*/
int MvSetDetectChannel(int nDetectChannel);
#ifdef __cplusplus
}
#endif
2024-01-30 18:59:29 +08:00
#endif // _OBJECT_EVENT_DETECT_H_