132 lines
5.5 KiB
C
Executable File
132 lines
5.5 KiB
C
Executable File
#ifndef CV_H_
|
||
#define CV_H_
|
||
|
||
#include "base.h"
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#define TY_CV_MAX_IMG_NUM 32
|
||
/*TY_CV图像宽最小像素*/
|
||
#define TY_CV_MIN_IMG_WIDTH 20
|
||
/*TY_CV图像高最小像素*/
|
||
#define TY_CV_MIN_IMG_HEIGHT 20
|
||
/*TY_CV图像宽最大像素*/
|
||
#define TY_CV_MAX_IMG_WIDTH 8192
|
||
/*TY_CV图像高最大像素*/
|
||
#define TY_CV_MAX_IMG_HEIGHT 8192
|
||
|
||
typedef uint64_t TY_CV_TASK_HANDLE;
|
||
|
||
|
||
/*!
|
||
* @brief CV系统初始化
|
||
* @note 调用本接口初始化成功,其它TY_CV接口才能正常工作
|
||
* 返回值:
|
||
0:成功,其它值:错误码
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_SysInit(void);
|
||
|
||
/*!
|
||
* @brief CV系统去初始化
|
||
* @note 本接口与TY_CV_SysInit配对使用,调用本接口后,其它TY_CV接口不能正常工作
|
||
* 返回值:
|
||
0:成功,其它值:错误码
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_SysExit(void);
|
||
|
||
/*!
|
||
* @brief 查询CV接口版本信息
|
||
* @param [out] majorVersion major版本
|
||
* @param [out] minorVersion minor版本
|
||
* @param [out] patchVersion patch版本
|
||
* @note 版本信息格式 x.y.z
|
||
* 返回值:
|
||
0:成功,其它值:错误码
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_GetVersion(int32_t *majorVersion,
|
||
int32_t *minorVersion,
|
||
int32_t *patchVersion);
|
||
|
||
/*!
|
||
* @brief 创建图像双线性插值缩放任务,源及目的图像的内存类型为VMM_CACHED,需要用户flush cache
|
||
* @param [in] src 源图像,支持ROI,支持stride,
|
||
* 支持图像格式:
|
||
* E_TY_PIXEL_FORMAT_YUV_400
|
||
* E_TY_PIXEL_FORMAT_RGB_888_PLANAR
|
||
* E_TY_PIXEL_FORMAT_BGR_888_PLANAR
|
||
* @param [out] dst 目的图像,不支持ROI,不支持stride
|
||
* 目的图像格式须与源图像格式相同
|
||
* @param [in] count 图像数目,源图像与目的图像数目相同,最大TY_CV_MAX_IMG_NUM
|
||
* @param [out] handle 任务handle,isBlock为1时,可为nullptr
|
||
* @param [in] isBlock 是否阻塞,1:阻塞,接口返回任务完成,0:非阻塞,需CV_Query获取任务完成状态
|
||
* 返回值:
|
||
0:成功,其它值:失败
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_Resize(T_TY_Image src[], T_TY_Image dst[],
|
||
int32_t count, TY_CV_TASK_HANDLE *handle, int32_t isBlock);
|
||
|
||
/*!
|
||
* @brief 创建图像格式转换任务,源及目的图像的内存类型为VMM_CACHED,需要用户flush cache
|
||
* @param [in] src 源图像,支持ROI,支持stride,
|
||
* 支持图像格式:
|
||
* E_TY_PIXEL_FORMAT_YUV_SEMIPLANAR_420、
|
||
* E_TY_PIXEL_FORMAT_YVU_SEMIPLANAR_420、
|
||
* E_TY_PIXEL_FORMAT_YUYV_PACKED_422、
|
||
* E_TY_PIXEL_FORMAT_UYVY_PACKED_422
|
||
* @param [out] dst 目的图像,不支持roi,不支持stride即widthStride==width,heightStride==height
|
||
* 支持图像格式:
|
||
* E_TY_PIXEL_FORMAT_RGB_888_PLANAR
|
||
* E_TY_PIXEL_FORMAT_BGR_888_PLANAR
|
||
* 目的图像分辨率与源图像分辨率相同,如带ROI,目的图像分辨率与ROI宽高相同
|
||
* @param [in] count 图像数目,源图像与目的图像数目相同,最大 TY_CV_MAX_IMG_NUM
|
||
* @param [out] handle 任务handle,isBlock为1时,可为nullptr
|
||
* @param [in] isBlock 是否阻塞,1:阻塞,接口返回任务完成,0:非阻塞,需CV_Query获取任务完成状态
|
||
* 返回值:
|
||
0:成功,其它值:失败
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_CvtColor(T_TY_Image src[], T_TY_Image dst[],
|
||
int32_t count, TY_CV_TASK_HANDLE *handle, int32_t isBlock);
|
||
|
||
/*!
|
||
* @brief 创建图像格式转换及缩放任务,源及目的图像的内存类型为VMM_CACHED,需要用户flush cache
|
||
* @param [in] src 源图像,支持ROI,支持stride,
|
||
* 支持图像格式:
|
||
* E_TY_PIXEL_FORMAT_YUV_400
|
||
* E_TY_PIXEL_FORMAT_RGB_888_PLANAR
|
||
* E_TY_PIXEL_FORMAT_BGR_888_PLANAR
|
||
* E_TY_PIXEL_FORMAT_YUV_SEMIPLANAR_420
|
||
* E_TY_PIXEL_FORMAT_YVU_SEMIPLANAR_420
|
||
* E_TY_PIXEL_FORMAT_YUYV_PACKED_422
|
||
* E_TY_PIXEL_FORMAT_UYVY_PACKED_422
|
||
* @param [out] dst 目的图像,不支持ROI,不支持stride
|
||
* 支持图像格式:
|
||
* E_TY_PIXEL_FORMAT_YUV_400
|
||
* E_TY_PIXEL_FORMAT_RGB_888_PLANAR
|
||
* E_TY_PIXEL_FORMAT_BGR_888_PLANAR
|
||
* @param [in] count 图像数目,源图像与目的图像数目相同,最大TY_CV_MAX_IMG_NUM
|
||
* @param [out] handle 任务handle,isBlock为1时,可为nullptr
|
||
* @param [in] isBlock 是否阻塞,1:阻塞,接口返回任务完成,0:非阻塞,需CV_Query获取任务完成状态
|
||
* 返回值:
|
||
0:成功,其它值:失败
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_CvtResize(T_TY_Image src[], T_TY_Image dst[],
|
||
int32_t count, TY_CV_TASK_HANDLE *handle, int32_t isBlock);
|
||
|
||
/*!
|
||
* @brief 查询图像任务结果
|
||
* @param [in] handle 任务handle
|
||
* @param [out] status 任务状态 1:完成,0:未完成
|
||
* @param [in] isBlock 是否阻塞,1:阻塞,接口返回任务完成,0:非阻塞,需CV_Query获取任务完成状态
|
||
* 返回值:
|
||
0:成功,其它值:失败
|
||
*/
|
||
TY_NPU_FUNC_VISIBILITY int32_t TY_CV_Query(TY_CV_TASK_HANDLE handle, E_TY_Bool *status, int32_t isBlock);
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
#endif
|