138 lines
5.0 KiB
C
138 lines
5.0 KiB
C
|
|
/*
|
|||
|
|
* Header: VZNL_Detect3DObject.h
|
|||
|
|
* Description:<EFBFBD><EFBFBD>ǰ<EFBFBD>ļ<EFBFBD>Ϊΰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Vizum)<EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD><EFBFBD>EyeCB<EFBFBD><EFBFBD><EFBFBD>ṩ<EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD>⺯<EFBFBD><EFBFBD><EFBFBD>Ľӿڡ<EFBFBD>
|
|||
|
|
*
|
|||
|
|
* Author: Mjw
|
|||
|
|
* Date: 2018/08/28
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef __VIZUM_DETECTED_3DOBJ_HEADER__
|
|||
|
|
#define __VIZUM_DETECTED_3DOBJ_HEADER__
|
|||
|
|
|
|||
|
|
#include "VZNL_Export.h"
|
|||
|
|
#include "VZNL_Types.h"
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] p3DPoint 3D<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] p2DPoint 2D<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] nCount <EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] nTimeStamp ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] dTotleOffset <EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] dStep <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] pLeftImage <EFBFBD><EFBFBD>ͼ
|
|||
|
|
* @param [out] pRightImage <EFBFBD><EFBFBD>ͼ
|
|||
|
|
* @param [out] pParam <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
typedef int(*VzNL_Output3DObjectResultCB)(SVzNL3DObjectDesc* p3DObjDesc, SVzNL3DObject2DResult* p2DObjDesc, int nObjCount, void* pParam);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>3D<33><44><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
VZNLAPI int VzNL_BeginDetect3DObject(VZNLHANDLE hDevice);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "nMin_mm">[in]<5D><>С<EFBFBD><D0A1><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "nMax_mm">[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @return <20><><EFBFBD><EFBFBD>0Ϊ<30><CEAA>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_ConfigDetect3DObjectDistance(VZNLHANDLE hDevice, int nMin_mm, int nMax_mm);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "dMinTh">[in]<5D><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>mm</param>
|
|||
|
|
/// <param name = "dMaxTh">[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "dPercent">[in]<5D><><EFBFBD><EFBFBD><EFBFBD>ٷְ<D9B7></param>
|
|||
|
|
VZNLAPI int VzNL_ConfigDetect3DObjectThres(VZNLHANDLE hDevice, double dMinTh, double dMaxTh, double dPercent);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "nSideCnt">[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD></param>
|
|||
|
|
VZNLAPI int VzNL_ConfigDetect3DObjectMinEdges(VZNLHANDLE hDevice, int nSideCount);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "p3DObjectDesc">[in]Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3Dģ<44><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @return <20><><EFBFBD><EFBFBD>0Ϊ<30><CEAA>ȷ
|
|||
|
|
VZNLAPI int VZNL_SetDetectObject(VZNLHANDLE hDevice, SVzNL3DObjectDesc* p3DObjectDesc, int nObjectCount);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @return <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0
|
|||
|
|
VZNLAPI int VzNL_Detect3DObject(VZNLHANDLE hDevice);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD><EFBFBD>塣
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @return <20><><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Get3DObjectResultCount(VZNLHANDLE hDevice);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "nResultIdx">[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "pp3DObjDesc">[out]3D<33><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @reutrn <20><><EFBFBD><EFBFBD><EFBFBD>룬0Ϊ<30>ɹ<EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Get3DObject3DResult(VZNLHANDLE hDevice, int nResultIdx, SVzNL3DObjectDesc** pp3DObjDesc);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "nResultIdx">[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "pp2DObjDesc">[out]2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @reutrn <20><><EFBFBD><EFBFBD><EFBFBD>룬0Ϊ<30>ɹ<EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Get3DObject2DResult(VZNLHANDLE hDevice, int nResultIdx, SVzNL3DObject2DResult** pp2DObjDesc);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20>ͷ<EFBFBD>3d<33><64><EFBFBD><EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Release3DObject3DResult(SVzNL3DObjectDesc** pp3DObjDesc);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20>ͷ<EFBFBD>2d<32><64><EFBFBD><EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Release3DObject2DResult(SVzNL3DObject2DResult** pp2DObjDesc);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ץȡ<D7A5>㡣
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "nResultIdx">[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "p3DGrabPoint">[out]<5D><>άץȡ<D7A5><C8A1></param>
|
|||
|
|
/// @reutrn <20><><EFBFBD><EFBFBD><EFBFBD>룬0Ϊ<30>ɹ<EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Get3DObjectResultGrabPoint(VZNLHANDLE hDevice, int nResultIdx, SVzNL3DPoint* p3DGrabPoint);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2D<32><44><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "p2DPoint">[out]2D<32>ߣ<EFBFBD><DFA3>ڴ<EFBFBD><DAB4>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "pnCount">[in/out]<5D><><EFBFBD><EFBFBD>:<3A>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SVzNL2DLineResult<6C>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD>:<3A>û<EFBFBD><C3BB><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>SVzNL2DLineResult</param>
|
|||
|
|
/// @return <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>롣
|
|||
|
|
VZNLAPI int VzNL_Get3DObjectLine2DResult(VZNLHANDLE hDevice, SVzNL2DLineResult* p2DLine, int* pnCount);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3D<33><44><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "p3DPoint">[out]3D<33>ߣ<EFBFBD><DFA3>ڴ<EFBFBD><DAB4>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <param name = "pnCount">[in/out]<5D><><EFBFBD><EFBFBD>:<3A>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SVzNL3DLineResult<6C>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD>:<3A>û<EFBFBD><C3BB><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>SVzNL3DLineResult</param>
|
|||
|
|
/// @return <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_Get3DObjectLine3DResult(VZNLHANDLE hDevice, SVzNL3DLineResult* p3DLine, int* pnCount);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3Dģ<44><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @return <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_StartAutoDetect3DObject(VZNLHANDLE hDevice, VzNL_Output3DObjectResultCB pResultCB, void* pParam);
|
|||
|
|
VZNLAPI int VzNL_StopAutoDetect3DObject(VZNLHANDLE hDevice);
|
|||
|
|
|
|||
|
|
/// @brief
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3D<33><44><EFBFBD><EFBFBD>
|
|||
|
|
/// <param name = "hDevice">[in]<5D>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
|
/// @return <20><><EFBFBD><EFBFBD><EFBFBD>룬0Ϊ<30>ɹ<EFBFBD>
|
|||
|
|
VZNLAPI int VzNL_EndDetect3DObject(VZNLHANDLE hDevice);
|
|||
|
|
|
|||
|
|
#endif //__VIZUM_DETECTED_3DOBJ_HEADER__
|