123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #ifndef SV_IMGPROCESS_H
- #define SV_IMGPROCESS_H
- /////////////////////////////////////////////////////////////////////////
- /// @file nvCFPDImageProcess.h
- /// @brief 此文件提供探测器SDK 图像处理的接口函数,接口函数需要配合SDK的标准函数进行使用,不可独立使用
- /// @version V1.0.0.0
- /// @author Liliudan
- /// @date 2021-03-01
- /// @par Copyright (c): Sensview Technology 成都善思微科技有限公司
- ///
- /////////////////////////////////////////////////////////////////////////
- #ifdef SV_IMGPROCESS_EXPORTS
- #define SV_IMGPROCESS_API __declspec(dllexport)
- #else
- #define SV_IMGPROCESS_API __declspec(dllimport)
- #endif
- #include "svImageProcessType.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /////////////////////////////////////////////////////////////////////////
- /// @brief 创建一个图像处理队列
- /// @param [in out] hQueue 创建成功后返回的队列句柄
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /// @note 该函数让用户创建一个图像处理队列,当处理队列不再使用时必须调用 @c NV_IMGP_DestroyProcessQueue()
- /// @sa @c NV_IMGP_DestroyProcessQueue()
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_CreateProcessQueue(HIMGPQUEUE * hQueue);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 销毁一个图像处理队列
- /// @param [in] hQueue 队列句柄
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /// @sa @c NV_IMGP_CreateProcessQueue()
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_DestroyProcessQueue(HIMGPQUEUE hQueue);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 向处理队列末尾添加一个处理算法
- /// @param [in] hQueue 队列句柄
- /// @param [in] eAlgoType 算法类型
- /// @param [in out] hAlgo 添加成功后返回的算法操作句柄,如果添加失败则返回空
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_AppendProcessAlgorithm(HIMGPQUEUE hQueue, PROCESS_ALGO_TYPE eAlgoType, HIMGPALGO * hAlgo);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 从队列中删除指定算法
- /// @param [in] hQueue 队列句柄
- /// @param [in] eAlgoType 算法句柄
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_DeleteProcessAlgorithm(HIMGPQUEUE hQueue, HIMGPALGO hAlgo);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 从处理队列中获取指定算法类型
- /// @param [in] hQueue 算法句柄
- /// @param [in] eAlgoType 算法类型
- /// @param [in out] hAlgo 添加成功后返回的算法操作句柄,如果添加失败则返回空
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_GetAlgorithmType(HIMGPALGO hAlgo, PROCESS_ALGO_TYPE * eType);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 设置算法参数
- /// @param [in] hAlgo 算法操作句柄
- /// @param [in] iItemType 算法配置项,详见类型文件nvImageProcessType.h中定义的不同算法的配置项
- /// @param [in] pParam 待设置参数缓冲区指针
- /// @param [in] iParamLen 待设置参数缓冲区大小
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_SetAlgorithmParam(HIMGPALGO hAlgo, int iItemType, const unsigned char * pParam, int iParamLen);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 获取算法参数
- /// @param [in] hAlgo 算法操作句柄
- /// @param [in] iItemType 算法配置项,详见类型文件nvImageProcessType.h中定义的不同算法的配置项
- /// @param [in out] pParam 待获取参数缓冲区指针
- /// @param [in out] iParamLen 待获取参数缓冲区大小
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_GetAlgorithmParam(HIMGPALGO hAlgo, int iItemType, unsigned char * pParam, int iParamLen);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 从队列中获取队列中的算法总数
- /// @param [in] hQueue 队列句柄
- /// @param [in out] iCount 获取到的算法总数
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_GetAlgorithmCount(HIMGPQUEUE hQueue, int * iCount);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 从队列中获取指定序号的算法操作句柄
- /// @param [in] hQueue 队列句柄
- /// @param [in] iIndex 索引序号
- /// @param [in out] hAlgo 返回的算法操作句柄,如果获取失败则返回空
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_GetAlgorithmHandle(HIMGPQUEUE hQueue, int iIndex, HIMGPALGO * hAlgo);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 从队列中删除一个指定索引的算法
- /// @param [in] hQueue 队列句柄
- /// @param [in] iIndex 索引序号
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_DeleteAlgorithmByIndex(HIMGPQUEUE hQueue, int iIndex);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 启动处理队列
- /// @param [in] hQueue 队列句柄
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_StartProcessQueue(HIMGPQUEUE hQueue);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 停止处理队列
- /// @param [in] hQueue 队列句柄
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_StopProcessQueue(HIMGPQUEUE hQueue);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 处理队列是否已启动
- /// @param [in] hQueue 队列句柄
- /// @param [in out] bStarted 获取到的启动标志
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_IsProcessQueueStarted(HIMGPQUEUE hQueue, bool * bStarted);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 保存图像处理队列方案
- /// @param [in] hQueue 队列句柄
- /// @param [in out] pSchemeData 方案数据指针
- /// @param [in out] iSchemeDataLen 方案数据长度
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_SaveProcessQueue(HIMGPQUEUE hQueue, char ** pSchemeData, int * iSchemeDataLen);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 加载图像处理队列方案
- /// @param [in] hQueue 队列句柄
- /// @param [in] pSchemeData 方案数据指针
- /// @param [in] iSchemeDataLen 方案数据长度
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /// 加载后原有的队列信息将被覆盖
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_LoadProcessQueue(HIMGPQUEUE hQueue, char * pSchemeData, int iSchemeDataLen);
- /////////////////////////////////////////////////////////////////////////
- /// @brief 使用队列处理图像数据
- /// @param [in] hQueue 队列句柄
- /// @param [in] pSrcImg 原始图像数据
- /// @param [in out] pProcessedImg 处理后图像数据
- /// @param [in out] pHistogram 处理后图像直方图数据(如果处理队列为空则输出原始图像直方图)
- /// @retval NV_StatusCodes 返回状态码,若成功则返回NV_SC_SUCCESS
- /////////////////////////////////////////////////////////////////////////
- SV_IMGPROCESS_API NV_StatusType SV_IMGP_ProcessImages(HIMGPQUEUE hQueue, const _NV_ImageInfo * pSrcImg, _NV_ImageInfo ** pProcessedImg, _SV_HISTOGRAM ** pHistogram);
- #ifdef __cplusplus
- }
- #endif
- #endif //NV_IMGPROCESS_H
|