2026-03-17 22:27:58 +08:00
/*
* 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 3 D <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param [ out ] p2DPoint 2 D <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__