logo资料库

OpenNCC API参考手册(OpenNCC_API).pdf

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
一:SDK C/C++接口说明
1.设备初始化相关接口
1.1加载设备固件
接口调用示例:
1.2获取连接设备usb版本信息
接口调用示例:
1.3初始化相机参数
媒体数据和meta 数据有2种方式获取,一:通过回调函数被动获取,二:通过read_XXX_data
typedef struct{
int imageWidth; //图像宽度
int imageHeight; //图像高度
int startX; //Ai运算起点x坐标
int startY; //Ai运算起点y坐标
int endX; //Ai运算终点x坐标
int endY; //Ai运算终点y坐标
int inputDimWidth; /* 缩放后模型输入宽,如果<=0,自动从模型
int inputDimHeight; /* 缩放后模型输入高,如果<=0,自动从模型
IMAGE_FORMAT inputFormat; /* 模型输入格式,只支持RGB/RGB_PL
float meanValue[3]; /* 缩放后的数据二次预处玿如果inputFo
  R = (R-meanValue[0]
  G = (G-meanValue
  B = (B-meanValue
float stdValue;
int isOutputYUV; //使能开关 1 : open 0 :cl
int isOutputH26X;
int isOutputJPEG;
encodeMode mode; /* H264/H265 */
} CameraInfo;
接口调用示例:
1.4 获取meta data大小
get_meta_size()
void
接口调用示例:略。
相机关闭,重新加载算法模型,更换模型前调用
1.5移除sdk
sdk_uninit()
void
接口调用示例:
sdk_uninit();
相机关闭,重新加载算法模型,更换模型前调用
1.6 获取sdk版本信息
接口调用示例:
2.视频流相关接口
2.1获取设备yuv数据
read_yuv_data()
char* pbuf
接收缓存区
int * size
输入输出参数,输入时表示输入缓存区大小,输出时表示返回视频数据大小
int blocked
数据返回0:如果无数据立即返回;1:阻塞直到读取到数据才返回
接口调用示例:
获取设备yuv数据流
2.2获取设备H.264或H.265数据流
read_26x_data()
char* pbuf
接收缓存区
int * size
输入输出参数,输入时表示输入缓存区大小,输出时表示返回视频数据大小
int blocked
数据返回0:如果无数据立即返回;1:阻塞直到读取到数据才返回
接口调用示例:
2.3获取设备jpeg数据
read_jpg_data()
char* pbuf
接收缓存区
int * size
输入输出参数,输入时表示输入缓存区大小,输出时表示返回视频数据大小
int blocked
数据返回0:如果无数据立即返回;1:阻塞直到读取到数据才返回
接口调用示例:
获取设备jpeg数据流
2.4获取设备AI算法运算结果
read_meta_data()
char* pbuf
接收缓存区
int * size
输入输出参数,输入时表示输入缓存区大小,输出时表示返回视频数据大小
int blocked
数据返回0:如果无数据立即返回;1:阻塞直到读取到数据才返回
接口调用示例:
2.5获取设备ir数据
read_ir_data()
char* pbuf
接收缓存区
int * size
输入输出参数,输入时表示输入缓存区大小,输出时表示返回视频数据大小
int blocked
数据返回0:如果无数据立即返回;1:阻塞直到读取到数据才返回
接口调用示例:
获取设备红外图像数据流,只有3D相机才支持该接口。
2.6获取设备depth数据
read_depth_data()
char* pbuf
接收缓存区
int * size
输入输出参数,输入时表示输入缓存区大小,输出时表示返回视频数据大小
int blocked
数据返回0:如果无数据立即返回;1:阻塞直到读取到数据才返回
接口调用示例:
获取设备深度图像数据流,只有3D相机才支持该接口。
3.相机控制相关接口
3.1获取相机模组信息
接口调用示例:
获取相机可见光模组模式信息,有的相机支持多种视频模式,可以通过camera_select_senso
3.2 选择模组工作模式
接口调用示例:
3.3控制相机视频输出方式
接口调用示例:
3.4 选择相机聚焦模式
接口调用示例:
3.5 设置相机镜头距离
接口调用示例:
3.6 触发单次聚焦
接口调用示例:
3.7 选择相机曝光模式
接口调用示例:
3.8 设置相机曝光时间
接口调用示例:
3.9 设置相机曝光增益
接口调用示例:
3.10 选择相机白平衡模式
接口调用示例:
3.11 浮点数转化
接口调用示例:
二:SDK Python接口说明
1.设备初始化相关接口
1.1 获取sdk版本信息
接口调用示例:
1.2 获取设备连接usb信息
接口调用示例:
1.3加载设备固件
接口调用示例:
1.4初始化相机参数
媒体数据以及meta 数据有2种获取方法,具体见c/c++对应的该接口描述。
接口调用示例:
1.5移除sdk
sdk_uninit()
接口调用示例:
sdk_uninit();
相机关闭,重新加载算法模型,更换模型前调用
2.视频流相关接口
2.1获取设备yuv数据
GetYuvData()
yuvbuf
接收缓存区,bytearray类型
接口调用示例:
metasize=ncc.get_meta_size()
获取设备yuv数据流
2.2获取设备H.264或H.265数据流
GetH26xData()
databuf
接收缓存区,bytearray类型
接口调用示例:
2.3获取设备jpeg数据
GetJpegData()
databuf
接收缓存区,bytearray类型
接口调用示例:
获取设备jpeg数据流
2.4获取设备AI网络数据运算结果
GetMetaData()
databuf
接收缓存区,bytearray类型
接口调用示例:
3.相机控制相关接口
3.1获取相机模组信息
接口调用示例:
获取相机可见光模组模式信息,有的相机支持多种视频模式,可以通过camera_select_senso
3.2 选择模组工作模式
接口调用示例:
3.3控制相机视频输出方式
接口调用示例:
3.4 设置相机聚焦模式
接口调用示例:
3.5 选择相机镜头距离
接口调用示例:
3.6 触发单次聚焦
接口调用示例:
3.7 选择相机曝光模式
接口调用示例:
3.8 选择相机曝光时间
接口调用示例:
3.9 选择相机曝光增益大小
接口调用示例:
3.10 选择相机白平衡模式
接口调用示例:
3.11 浮点数转化
接口调用示例:
OpenNCC SDK API2.0.x 接口定义 历史版本 版本 1.0.0 1.0.1 2.0.0 日期 2020/1/10 2020/3/16 2020/4/7 修改 王新华 王洋 左文平 变更摘要 Initial version Optimized version 修订接口,添加 python 接口
一:SDK C/C++接口说明 接口包含文件主要在 sdk.h、cameraCtrl.h 、Fp16Convert 3 个文件。 OpenNCC sdk 视频处理流程图 1.设备初始化相关接口 1.1 加载设备固件 接口名称 load_fw() 接口参数 const char* bootExe const char* firmware 参数说明 Usb boot 程序路径 固件文件放置路径 接口调用示例: load_fw("./moviUsbBoot","./fw/flicRefApp.mvcmd"); 返回值:0:成功;-1 失败 接口功能说明: 自动加载设备固件,设备 boot 运行,host(PC)打开 usb 设备。 1.2 获取连接设备 usb 版本信息 接口名称 get_usb_version() 接口参数 void 参数说明 无 接口调用示例: get_usb_version();
返回值:30:usb3.0、20:usb2.0 接口功能说明: 获取设备连接的 usb 版本信息(端口和 usb 线) 1.3 初始化相机参数 接口名称 sdk_init() 接口参数 vscRecvCb cb void* param char *blob_path CameraInfo*cam int cam_Len 参数说明 回调函数 回调函数参数 AI 模型文件(blob 格式)路径 相机配置参数,具体内容见下方 相机配置结构体长度 媒体数据和 meta 数据有 2 种方式获取,一:通过回调函数被动获取,二:通过 read_XXX_data()主动获 取,使用第二种方法不用设置回调函数以及回调参数。 typedef struct{ //图像宽度 //图像高度 //Ai 运算起点 x 坐标 int imageWidth; int imageHeight; int startX; int startY; int endX; int endY; int inputDimWidth; int inputDimHeight; IMAGE_FORMAT inputFormat; /* 模型输入格式,只支持 //Ai 运算起点 y 坐标 //Ai 运算终点 x 坐标 //Ai 运算终点 y 坐标 /* 缩放后模型输入宽,如果<=0,自动从模型的 xml 获取*/ /* 缩放后模型输入高,如果<=0,自动从模型的 xml 获取 */ RGB/RGB_PLANAR/BGR/BGR_PLANAR */ float meanValue[3]; /* 缩放后的数据二次预处玿如果 inputFormat 为 RGB: float stdValue; isOutputYUV; int isOutputH26X; int int isOutputJPEG; encodeMode mode; R = (R-meanValue[0])/stdValue G = (G-meanValue[0])/stdValue B = (B-meanValue[0])/stdValue */ //使能开关 1 : open 0 :close /* H264/H265 */ } CameraInfo; 接口调用示例: sdk_init(NULL, NULL, (char*) "./blob/face-detection.blob", &cam_info, sizeof(cam_info)); 返回值:0:成功;-1 失败 接口功能说明: 指定相机 AI 模型文件,AI 计算参数,初始化设备算法模型,相机功能开关选择,通过 mode 参数设置视频
压缩编码参数(ENCODE_H264_MODE,ENCODE_H265_MODE),注意,此处仅仅是功能开关是否 开启,视频输出还要通过 camera_video_out()控制是否输出。 1.4 获取 meta data 大小 接口名称 get_meta_size() 接口调用示例:略。 接口参数 void 参数说明 无 返回值:cnn 计算结果 meta data 数据大小。 接口功能说明: 相机关闭,重新加载算法模型,更换模型前调用 1.5 移除 sdk 接口名称 sdk_uninit() 接口调用示例: sdk_uninit(); 返回值:无 接口参数 void 参数说明 无 接口功能说明: 相机关闭,重新加载算法模型,更换模型前调用 1.6 获取 sdk 版本信息 接口参数 char* version 参数说明 版本信息 接口名称 get_sdk_version() 接口调用示例: char version[100]; get_sdk_version(version); 返回值:void 接口功能说明: 获取 sdk 版本信息。
2.视频流相关接口 2.1 获取设备 yuv 数据 接口名称 read_yuv_data() 接口参数 char* pbuf int * size int blocked 参数说明 接收缓存区 输入输出参数,输入时表示输入缓存区大小,输出时表示返回视 频数据大小 数据返回 0:如果无数据立即返回;1:阻塞直到读取到数据才 返回 接口调用示例: read_yuv_data(data_yuv,&size,1) 返回值:0:成功;-1 失败 接口功能说明: 获取设备 yuv 数据流 2.2 获取设备 H.264 或 H.265 数据流 接口名称 read_26x_data() 接口参数 char* pbuf int * size int blocked 参数说明 接收缓存区 输入输出参数,输入时表示输入缓存区大小,输出时表示返回视 频数据大小 数据返回 0:如果无数据立即返回;1:阻塞直到读取到数据才 返回 接口调用示例: read_26x_data(data_26x,&size,1) 返回值:0:成功;-1 失败 接口功能说明: 获取设备 H.264 或 H.265 数据流 2.3 获取设备 jpeg 数据 接口名称 read_jpg_data() 接口调用示例: 接口参数 char* pbuf int * size int blocked 参数说明 接收缓存区 输入输出参数,输入时表示输入缓存区大小,输出时表示返回视 频数据大小 数据返回 0:如果无数据立即返回;1:阻塞直到读取到数据才 返回
read_jpg_data(yuv420p,&size,1) 返回值:0:成功;-1 失败 接口功能说明: 获取设备 jpeg 数据流 2.4 获取设备 AI 算法运算结果 接口名称 read_meta_data() 接口参数 char* pbuf int * size int blocked 参数说明 接收缓存区 输入输出参数,输入时表示输入缓存区大小,输出时表示返回视 频数据大小 数据返回 0:如果无数据立即返回;1:阻塞直到读取到数据才 返回 接口调用示例: read_meta_data(data_mate,&size,1) 返回值:0:成功;-1 失败 接口功能说明: 获取设备 AI 网络运算结果数据 2.5 获取设备 ir 数据 接口名称 read_ir_data() 接口参数 char* pbuf int * size int blocked 参数说明 接收缓存区 输入输出参数,输入时表示输入缓存区大小,输出时表示返回视 频数据大小 数据返回 0:如果无数据立即返回;1:阻塞直到读取到数据才 返回 接口调用示例: read_ir_data(yuv420p,&size,1) 返回值:0:成功;-1 失败 接口功能说明: 获取设备红外图像数据流,只有 3D 相机才支持该接口。 2.6 获取设备 depth 数据 接口名称 read_depth_data() 接口参数 char* pbuf int * size 参数说明 接收缓存区 输入输出参数,输入时表示输入缓存区大小,输出时表示返回视 频数据大小
int blocked 数据返回 0:如果无数据立即返回;1:阻塞直到读取到数据才 返回 接口调用示例: read_depth_data(data_depth,&size,1) 返回值:0:成功;-1 失败 接口功能说明: 获取设备深度图像数据流,只有 3D 相机才支持该接口。 3.相机控制相关接口 3.1 获取相机模组信息 接口参数 SensorModesConfig * 接口名称 camera_control_get_features() 接口调用示例: SensorModesConfig cameraCfg; camera_control_get_features(&cameraCfg); 返回值:0:成功;-1 失败 参数说明 设备信息的结构体指针 cameraCfg.moduleName 相机模组名称 cameraCfg.camWidth 图像宽 cameraCfg.camHeight 图像高 cameraCfg.camFps cameraCfg.AFmode 是否支持自动聚焦 1 支持,0 不支持 cameraCfg.maxEXP cameraCfg.minGain cameraCfg.maxGain 最大曝光时间,单位微秒 us 最小增益倍数 最大增益倍数 相机帧率 接口功能说明: 获取相机可见光模组模式信息,有的相机支持多种视频模式,可以通过 camera_select_sensor()选择使用。 3.2 选择模组工作模式 接口名称 camera_select_sensor() 接口参数 int sensorid 接口调用示例: camera_select_sensor(0); 返回值:0:成功;-1 失败 参数说明 camera_control_get_features 获 取到相机支持的模组信息数组, sensorid 为数组的序号。
接口功能说明: 设置相机可见光模组的工作模式。 3.3 控制相机视频输出方式 接口名称 camera_video_out() typedef enum { 接口参数 int video_type camera_ctrl_VIDEO_out mode 参数说明 Yuv 数据输出模式 禁止,单次(拍照用),连续 VIDEO_OUT_DISABLE, VIDEO_OUT_SINGLE, VIDEO_OUT_CONTINUOUS, /* 禁止输出 */ /* 输出一次 */ /* 连续输出 */ }camera_ctrl_video_out; 接口调用示例: camera_video_out(YUV420p,VIDEO_OUT_CONTINUOUS); 返回值:0:成功;-1 失败 接口功能说明: 控制设备输出视频数据的模式,该设置当前对 YUV420p,H26X,JPEG 有效,其中好 H26X 不支持单次输出。 3.4 选择相机聚焦模式 接口名称 camera_control_af_mode() 接口参数 camera_ctrl_af_mode af_mode 参数说明 CAMERA_CONTROL__AF_MODE _OFF : 手动 CAMERA_CONTROL__AF_MODE _AUTO:自动 接口调用示例: camera_control_af_mode(CAMERA_CONTROL__AF_MODE_OFF); 返回值:0:成功;-1 失败 接口功能说明: 设置相机聚焦模式,通过 camera_control_get_features()获取到相机是否支持手动模式 (cameraCfg.AFmode),只有支持手动才可以设置,否则设置无效,相机不执行该命令,默认自动。 3.5 设置相机镜头距离
分享到:
收藏