3. API参考

3.1. Create Handle

【描述】

创建IVE句柄。

【语法】

IVE_HANDLE CVI_IVE_CreateHandle();

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.2. Destroy Handle

【描述】

释放IVE句柄。

【语法】

CVI_S32 CVI_IVE_CreateHandle(IVE_HANDLE pIveHandle);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【返回值】

返回值

描述

0

成功

非0

失败

3.3. DMA

【描述】

创建直接内存访问任务,支持快速拷贝、间隔拷贝、内存填充:可实现数据从一块内存快速拷贝到另一块内存,或者从一块内存有规律的拷贝一些数据到另一块内存,或者对一块内存进行填充操作。

【语法】

CVI_S32 CVI_IVE_DMA(IVE_HANDLE pIveHandle, IVE_DST_DATA_S *pstSrc, IVE_DST_DATA_S *pstDst, IVE_DMA_CTRL_S *pstCtrl, CVI_BOOL bInstant );

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出数据指针。Copy模式下不能为空。

输出

pstCtrl

DMA控制参数指针。不能为空。

输入

bInstant

返回结果标志。True为busy waiting mode,False为Interrupt mode。

输入

参数名称

支持类型

地址对齐

分辨率

pstSrc

IVE_DATA_S

1 byte

32x1~1920x1080

pstDst

IVE_DST_DATA_S

1 byte

直接拷贝时同pstSrc;间隔拷贝时比pstSrc大

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

[注意]

  • IVE_DMA_MODE_DIRECT_COPY:快速拷贝模式

    可实现从大块内存中扣取小块内存,如图所示,计算公式如下:

    \[\begin{aligned} I_{\text {out }}(x, y)=I(x, y) \quad(0 \leq x \leq \text { width }, 0 \leq y \leq \text { height }) \end{aligned}\]

快速拷贝示意图

_images/Functi011.jpg
  • IVE_DMA_MODE_INTERVAL_COPY:间隔拷贝模式

    • 要求源数据宽度为u8HorSegSize的倍数;

    • 间隔拷贝的方式:将每u8VerSegRows行中第一行数据分割为u8HorSegSize大小的段, 拷贝每段中的前u8ElemSize大小的字节。如图所示。

  • IVE_DMA_MODE_SET_3BYTE:3字节填充模式

    仅使用pstSrc, 用u64Val的低3字节对源数据进行填充操作;当一行末尾不够3字节时, 用u64Val的低字节填充

  • IVE_DMA_MODE_SET_8BYTE:8字节填充模式

    仅使用pstSrc,用u64Val对源数据进行填充操作;当一行的末尾不足8字节时,用u64Val的低字节填充。

间隔拷贝示意图

_images/Functi012.jpg

3.4. Filter

【描述】

创建 5x5 模板滤波任务,通过配置不同的模板系数,可以实现不同的滤波。

【语法】

CVI_S32 CVI_IVE_Filter(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_FILTER_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出数据指针。宽高同pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1、YUV420SP、YUV422SP

16 byte

64x64~1920x1024

pstDst

同pstSrc

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.5. Filter And CSC

【描述】

创建 5x5 模板滤波及YUV2RGB色彩空间转换任务,通过配置不同的模板系数,可以实现不同的滤波。

【语法】

CVI_S32 CVI_IVE_FilterAndCSC(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_FILTER_AND_CSC_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出数据指针。宽高同pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

YUV420SP、YUV422SP

16 byte

64x64~1920x1024

pstDst

U8C3_PLANAR或U8C3_PACKAGE

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.6. CSC

【描述】

创建色彩空间转换任务。

【语法】

CVI_S32 CVI_IVE_CSC(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_FILTER_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出数据指针。宽高同pstSrc。

输出

pstCscCtrl

控制信息指针。不能为空。

输入

bInstant

返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

YUV420SP、YUV422SP、 U8C3_PLANAR、U8C3_PACKAGE

16 byte

64x64~1920x1024

pstDst

U8C3_PLANAR、 U8C3_PACKAGE、 YUV420SP、YUV422SP

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.7. Sobel

【描述】

创建 5x5 模板 Sobel-like 梯度计算任务。

【语法】

CVI_S32 CVI_IVE_Sobel(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDstH, IVE_DST_IMAGE_S *pstDstV, IVE_SOBEL_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDstH

由模板直接滤波得到的梯度分量图像 H 指针。根pstSobelCtrl→enOutCtrl, 若需要输出则不能为空。宽高同pstSrc。

输出

pstDstV

由模板直接滤波得到的梯度分量图像 V 指针。根pstSobelCtrl→enOutCtrl, 若需要输出则不能为空。宽高同pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

8x8~1920x1024

pstDstH

S16C1

16 byte

同pstSrc

pstDstV

S16C1

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.8. NormGrad

【描述】

创建归一化梯度计算任务。 所有梯度会归一化到S8格式。

【语法】

CVI_S32 CVI_IVE_NormGrad(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDstH, IVE_DST_IMAGE_S *pstDstV, IVE_DST_IMAGE_S *pstDstHV, IVE_NORM_GRAD_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDstH

由模板直接滤波得到的梯度分量图像 H 指针。根pstNormGradCtrl→enOutCtrl, 若需要输出则不能为空。宽高同pstSrc。

输出

pstDstV

由模板直接滤波得到的梯度分量图像 V 指针。根pstNormGradCtrl→enOutCtrl,若需要输出则不能为空。宽高同pstSrc。

输出

pstDstHV

由模板直接滤波得到的梯度分量图像 HV 指针。根pstNormGradCtrl→enOutCtrl,若需要输出则不能为空。宽高同pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

pstDstH

U8C1

16 byte

pstDstV

U8C1

16 byte

pstDstHV

S8C2_PACKAGE

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.9. Canny Edge

【描述】

链接Canny影像结边界。

【语法】

CVI_S32 CVI_IVE_CannyEdge(IVE_IMAGE_S *pstEdge, IVE_MEM_INFO_S *pstStack);

【参数】

参数名称

描述

输入/输出

pstEdge

输入Edge Flag影像,输出二值化边界影像。

输入/输出

pstStack

强边界的坐标

输入/输出

参数名称

支持图像类型

地址对齐

分辨率

pstEdge

U8C1

16 byte

pstStack

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.10. Canny Hysteresis Edge

【描述】

创建Canny Edge任务,计算灰阶影像的Gradient, Gradient Magnitude, Hysteresis threshold和Non-Maximum Suppression。

【语法】

CVI_S32 CVI_IVE_CannyHysEdge(IVE_HANDLE pIveHandle, IVE_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstEdge, IVE_MEM_INFO_S *pstStack,IVE_CANNY_HYS_EDGE_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstEdge

Strong/Weak Edge Flag影像。

输出

pstStack

强边界的坐标

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

pstEdge

U8C1

16 byte

pstStack

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

【注意】

3.11. MagAndAng

【描述】

创建 5x5 模板梯度幅值与幅角计算任务。

【语法】

CVI_S32 CVI_IVE_MagAndAng(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDstMag, IVE_DST_IMAGE_S *pstDstAng, IVE_MAG_AND_ANG_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDstMag

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstDstAng

输出幅角图像指针。根据pstMagAndAngCtrl→enOutCtrl,需要输出 则不能为空。 高、宽同 pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

64x64~1920x1024

pstDstMag

U16C1

16 byte

同pstSrc

pstDstAng

U8C1

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.12. Dilate

【描述】

创建二值图像 5x5 模板膨胀任务。

【语法】

CVI_S32 CVI_IVE_Dilate(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_DILATE_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

64x64~1920x1024

pstDst

U16C1

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.13. Erode

【描述】

创建二值图像 5x5 模板腐蚀任务。

【语法】

CVI_S32 CVI_IVE_Erode(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_ERODE_CTRL_S *pstErodeCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstErodeCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1 的二值图

16 byte

64x64~1920x1024

pstDst

U8C1 的二值图

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.14. Thresh

【描述】

创建灰度图像阈值化任务。

【语法】

CVI_S32 CVI_IVE_Thresh(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_MAG_AND_ANG_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

64x64~1920x1024

pstDstMag

U16C1

16 byte

同pstSrc

pstDstAng

U8C1

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.15. And

【描述】

创建两二值图像相与任务。

【语法】

CVI_S32 CVI_IVE_And(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstDst, IVE_AND_CTRL_S *pstCtrl,CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源图像1指针。不能为空。

输入

pstSrc2

源图像2指针。不能为空。

输出

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U16C1 的二值图

1 byte

64x64~1920x1024

pstSrc2

U16C1

1 byte

同pstSrc

pstDst

U8C1

1 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.16. Sub

【描述】

创建两灰度图像相减任务。

【语法】

CVI_S32 CVI_IVE_Sub(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstDst, IVE_SUB_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源图像1指针。不能为空。

输入

pstSrc2

源图像2指针。不能为空。

输出

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc1。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U16C1 的二值图

1 byte

64x64~1920x1024

pstSrc2

U16C1

1 byte

同pstSrc

pstDst

U8C1

1 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.17. Or

【描述】

创建两二值图像相或任务。

【语法】

CVI_S32 CVI_IVE_Or(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstDst, IVE_OR_CTRL_S *pstCtrl,CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源图像1指针。不能为空。

输入

pstSrc2

源图像2指针。不能为空。

输出

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc1。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U16C1 的二值图

1 byte

64x64~1920x1024

pstSrc2

U16C1

1 byte

同pstSrc

pstDst

U8C1

1 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.18. Map

【描述】

将一个影像透过一个映像表格映像到另一个影像。

【语法】

CVI_S32 CVI_IVE_Map(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_SRC_MEM_INFO_S *pstMap, IVE_DST_IMAGE_S *pstDst, IVE_MAP_CTRL_S *pstCtrl,CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

输入影像指针。不能为空。

输入

pstMap

输入映像表格指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.19. OrdStatFilter

【描述】

用3x3的核寻找图片中的极大、极小值。

【语法】

CVI_S32 CVI_IVE_OrdStatFilter(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_ORD_STAT_FILTER_CTRL_S *pstCtrl,CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc

输入影像指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.20. Integral

【描述】

创建灰度图像的积分图计算任务。

【语法】

CVI_S32 CVI_IVE_Integ(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_MEM_INFO_S *pstDst, IVE_INTEG_CTRL_S *pstIntegCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstIntegCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

64x64~1920x1024

pstDst

U32C1, U64C1

16 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.21. Histogram

【描述】

创建灰度图像的直方图统计任务。

【语法】

CVI_S32 CVI_IVE_Hist(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_MEM_INFO_S *pstDst, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源数据指针。不能为空。

输入

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

64x64~1920x1024

pstDst

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.22. Add

【描述】

创建两灰度图像的加权加计算任务

【语法】

CVI_S32 CVI_IVE_Add(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, , IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstDst, IVE_ADD_CTRL_S *pstCtrl,CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源数据指针。不能为空。

输入

pstSrc2

源数据指针。不能为空。

输入

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc。

输出

pstCtrl

控制信息指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

16 byte

64x64~1920x1024

pstDst

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.23. Xor

【描述】

创建两二值图的异或计算任务

【语法】

CVI_S32 CVI_IVE_Xor(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstDst, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源图像1指针。不能为空。

输入

pstSrc2

源图像2指针。不能为空。高宽同 pstSrc1

pstDst

输出幅值图像指针。 不能为空。 高、宽同 pstSrc1。

输出

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U8C1

1 byte

64x64~1920x1024

pstSrc2

U8C1

1 byte

同pstSrc

pstDst

1 byte

同pstSrc

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.24. Match BgModel

【描述】

输入当前影像和模型,取得前景数据。

【语法】

CVI_S32 CVI_IVE_MatchBgModel(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstCurImg, IVE_DATA_S *pstBgModel, IVE_IMAGE_S *pstFgFlag, IVE_DST_IMAGE_S *pstDiffFg, IVE_DST_MEM_INFO_S *pstStatData, IVE_MATCH_BG_MODEL_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstCurImg

当前影像。

输入

pstBgModel

模型。

输入/输出

pstFgFlag

前景状态影像。

输入/输出

pstDiffFg

前景影像。

输出

pstStatData

前景状态

输出

pstCtrl

控制结构

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstCurImg

U8C1

1 byte

pstBgModel

1 byte

pstFgFlag

U8C1

1 byte

pstDiffFg

S8C1

1 byte

pstStatData

1 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.25. Update BgModel

【描述】

更新背景模型。

【语法】

CVI_S32 CVI_IVE_UpdateBgModel(IVE_HANDLE pIveHandle, IVE_DATA_S *pstBgModel, IVE_IMAGE_S *pstFgFlag, IVE_DST_IMAGE_S *pstBgImg, IVE_DST_IMAGE_S *pstChaSta, IVE_DST_MEM_INFO_S *pstStatData, IVE_MATCH_BG_MODEL_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstBgModel

模型

输入/输出

pstFgFlag

前景状态影像。

输入/输出

pstBgImg

背景影像。

输出

pstChaSta

前景更新状态影像。

输出

pstStatData

背景状态

输出

pstCtrl

控制结构

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstBgModel

1 byte

pstFgFlag

U8C1

1 byte

pstBgImg

U8C1

1 byte

pstChaSta

S8C1

1 byte

pstStatData

1 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.26. Gradient of Foreground

【描述】

根据背景梯度影像和当前影像,计算前景图梯度影像。

【语法】

CVI_S32 CVI_IVE_GradFg(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstBgDiffFg, IVE_SRC_IMAGE_S *pstCurGrad, IVE_SRC_IMAGE_S *pstBgGrad,IVE_DST_IMAGE_S *pstGradFg, IVE_GRAD_FG_ CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstBgDiffFg

前景影像

输入

pstCurGrad

当前梯度影像

输入

pstBgGrad

背景梯度影像

输入

pstGradFg

前景梯度影像

输出

pstCtrl

控制结构

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstBgDiffFg

S8C1

1byte

pstCurGrad

S8 C2_PACKAGE

1byte

pstBgGrad

S8 C2_PACKAGE

1byte

pstGradFg

S8C1

1byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.27. GMM

【描述】

建立GMM背景模型任务。

【语法】

CVI_S32 CVI_IVE_GMM(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstFg, IVE_DST_IMAGE_S *pstBg, IVE_MEM_INFO_S *pstModel,IVE_GMM_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

输入影像。

输入

pstFg

前景影像。

输出

pstBg

背景影像。

输出

pstModel

模型数据。

输入/输出

pstCtrl

控制结构

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstModel

1byte

pstSrc

U8C1或U8C3_PACKAGE

1byte

pstFg

U8C1二值化影像

1 byte

pstBg

U8 C1或U8C3_PACKAGE

1byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.28. GMM2

【描述】

建立GMM背景模型任务。

【语法】

CVI_S32 CVI_IVE_GMM2(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_SRC_IMAGE_S *pstFactor, IVE_DST_IMAGE_S *pstFg, IVE_DST_IMAGE_S *pstBg,IVE_DST_IMAGE_S *pstMatchModelInfo, IVE_MEM_INFO_S *pstModel, IVE_GMM _CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

输入影像。

输入

pstFactor

模型更新系数

输入

pstFg

前景影像。

输出

pstBg

背景影像。

输出

pstMatchModelInfo

模型匹配系数

输出

pstModel

模型数据。

输入/输出

pstCtrl

控制结构

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstModel

1byte

pstFactor

U16C1

1byte

pstSrc

U8C1或U8C3_PACKAGE

1byte

pstFg

U8 C1二值化影像

1byte

pstBg

U8C1或U8C3_PACKAGE

1byte

pstMatchModelInfo

U8C1

1byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.29. Bernsen

【描述】

建立Bernsen二值化算法任务。

【语法】

CVI_S32 CVI_IVE_Bernsen(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_BERNSEN_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

输入影像。

输入

pstDst

结果影像。

输出

pstCtrl

控制结构

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc

U8C1

1byte

pstDst

U8C1二值化影像

1 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.30. NCC

【描述】

创建两相同分辨率灰度图像的归一化互相关系数计算任务

【语法】

CVI_S32 CVI_IVE_NCC(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_MEM_INFO_S *pstDst, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源1图像指针。不能为空。

输入

pstSrc2

源2图像指针。不能为空。

输入

pstDst

输出数据指针。不能为空。内存至少需配置:sizeof(IVE_NCC_DST_MEM_S)。

输出

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U8C1

1byte

64x64~1920x1024

pstSrc2

U8C1

1byte

同pstSrc

pstDst

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.31. LBP

【描述】

创建 LBP 计算任务

【语法】

CVI_S32 CVI_IVE_LBP(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S * pstDst, IVE_LBP_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc

源图像指针。不能为空。

输入

pstDst

输出数据指针。不能为空。内存至少需配置:sizeof(IVE_NCC_DST_MEM_S)。 |

输出

pstCtrl

控制参数指针。不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U8C1

1byte

64x64~1920x1024

pstSrc2

U8C1

1byte

同pstSrc

pstDst

16 byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.32. SAD

【描述】

计算两幅图像SAD。

【语法】

CVI_S32 CVI_IVE_SAD(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstSad, IVE_DST_IMAGE_S *pstThr, IVE_SAD_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

handle指针。不能为空。

输入

pstSrc1

源1图像指针。不能为空。

输入

pstSrc2

源2图像指针。不能为空。高和宽同pstSrc1

输入

pstSad

输出SAD图像指针。
根据pstSad Ctrl→enOutCtrl,若需要输出则不能为空。
根据 pstSadCtrl→enMode,对应4x4、8x8、16x16 分块模式,高、 宽分别为 pstSrc1 的1/4、1/8、1/16。

输出

pstThr

输出 SAD 阈值化图像指针。
根据pstSad Ctrl→enOutCtrl,若需要输出则不能为空。
根据pstSadCtrl→enMode,对应4x4、8x8、16x16 分块模式,高、 宽分别为 pstSrc1 的1/4、1/8、1/16。

输出

pstCtrl

控制信息指针。 不能为空。

输入

bInstant

及时返回结果标志。

输入

参数名称

支持图像类型

地址对齐

分辨率

pstSrc1

U8C1

1byte

64x64~1920x1024

pstSrc2

U8C1

1byte

同pstSrc1

pstSad

U8C1、U16C1

16byte

根据 pstSadCtrl→enMode,对应 4x4、8x8、16x16分块 模式,高、 宽分别为pstSrc1 的1/4、1/8、1/16。

pstThr

U8C1

16 byte

根据 pstSadCtrl→enMode,对应 4x4、8x8、16x16分块 模式,高、宽分 别为pstSrc1 的1/4、1/8、1/16。

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.33. BufFlush

【描述】

对于使用CVI_IVE_CreateImage_Cached建立的图像,在IVE硬件存取影像的内容前,须使用此函式将cache data 放到 RAM。

【语法】

CVI_S32 CVI_IVE_BufFlush(IVE_HANDLE pIveHandle, IVE_IMAGES_S *pstImg);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImg

操作的影像内容。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.34. BufRequest

【描述】

对于使用CVI_IVE_CreateImage_Cached建立的图像,在RISC-V存取u64VirAddr所指向的内容前,须使用此函式将Ram内容更新到cache。

【语法】

CVI_S32 CVI_IVE_BufRequest(IVE_HANDLE pIveHandle, IVE_IMAGES_S *pstImg);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImg

操作的影像内容。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.35. CreateMemInfo

【描述】

创造一块内存供IVE_MEM_S结构使用。

【语法】

CVI_S32 CVI_IVE_CreateMemInfo(IVE_HANDLE pIveHandle, IVE_MEM_INFO_S *pstMemInfo, CVI_U32 u32ByteSize);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstMemInfo

创建的记忆体结构。不能为空。

输入

u32ByteSize

记忆体结构的byte容量

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.36. CreateDataInfo

【描述】

创造一块内存供IVE_DATA_S结构使用。

【语法】

CVI_S32 CVI_IVE_CreateDataInfo(IVE_HANDLE pIveHandle, IVE_DATA_S *pstDataInfo, CVI_U16 u16Width, CVI_U16 u16Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstDataInfo

创建的IVE_DATA_S结构。不能为空。

输入

u16Width

Data的宽

输入

u16Height

Data的高

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.37. CreateImage

【描述】

创造一块影像内存供使用。 用此函数建立的影像会自动映像u64PhyAddr和u64VirAddr的内容。无需对cache进行Flush或Invalidate。

【语法】

CVI_S32 CVI_IVE_CreateImage(IVE_HANDLE pIveHandle, IVE_IMAGE_S *pstImg, IVE_IMAGE_TYPE_E enType, CVI_U16 u16Width, CVI_U16 u16Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImg

创建给影像用的记忆体结构。

输出

enType

创建的影像记忆体格式

输入

u16Width

影像的宽

输入

u16Height

影像的高

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.38. CreateImage with Cache

【描述】

创造一块影像内存供使用。 用此函数建立的影像需要使用CVI_IVE_BufFlush和CVI_IVE_BufRequest更新u64PhyAddr和u64VirAddr的内容。

【语法】

CVI_S32 CVI_IVE_CreateImage_Cached(IVE_HANDLE pIveHandle, IVE_IMAGE_S *pstImg, IVE_IMAGE_TYPE_E enType, CVI_U32 u32Width,
CVI_U32 u32Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImg

创建给影像用的记忆体结构。

输出

enType

创建的影像记忆体格式

输入

u32Width

影像的宽

输入

u32Height

影像的高

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.39. ResetImage

【描述】

将Image内容填入特定值。

【语法】

CVI_S32 CVI_IVE_ResetImage(IVE_HANDLE pIveHandle, IVE_IMAGE_S *pstImg, CVI_U8 val);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImg

创建给影像用的记忆体结构。

输出

val

预填入影像的值

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.40. ReadImageArray

【描述】

从buffer读入影像。

【语法】

CVI_S32 CVI_IVE_ReadImageArray (IVE_HANDLE pIveHandle, IVE_IMAGE_S *pstImage, char *pBuffer, IVE_IMAGE_TYPE_E enType,
CVI_U16 u16Width, CVI_U16 u16Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImage

创建给影像用的记忆体结构。

输出

pBuffer

Buffer

输入

enType

创建的影像记忆体格式

输入

u16Width

影像的宽

输入

u16Height

影像的高

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.41. ReadMem

【描述】

从档案读入到IVE_DATA_S结构。

【语法】

CVI_S32 CVI_IVE_ReadMem(IVE_HANDLE pIveHandle, IVE_MEM_INFO_S *pstMem, const char *filename, CVI_U32 uSize);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstMem

IVE_MEM_INFO_S结构。

输出

filename

档案路径

输入

u32Size

Mem 大小

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.42. ReadMemArray

【描述】

从buffer读入数据到IVE_MEM_INFO_S结构。

【语法】

CVI_S32 CVI_IVE_ReadMemArray (IVE_HANDLE pIveHandle, IVE_MEM_INFO_S *pstMem, char *pBuffer, CVI_U32 uSize);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstMem

IVE_MEM_INFO_S结构。

输出

pBuffer

Buffer

输入

u32Size

Buffer大小

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.43. ReadData

【描述】

从档案读入到IVE_DATA_S结构。

【语法】

CVI_S32 CVI_IVE_ReadData(IVE_HANDLE pIveHandle, IVE_DATA_S *pstData, const char *filename, CVI_U16 u16Width, CVI_U16 u16Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstData

IVE_DATA_S结构。

输出

filename

档案路径

输入

u16Width

Data的宽

输入

u16Height

Data的高

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.44. ReadDataArray

【描述】

从buffer读入数据到IVE_DATA_S结构。

【语法】

CVI_S32 CVI_IVE_ReadDataArray (IVE_HANDLE pIveHandle, IVE_DATA_S *pstData, char *pBuffer, CVI_U16 u16Width, CVI_U16 u16Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstData

IVE_DATA_S结构。

输出

pBuffer

Buffer

输入

u16Width

Data的宽

输入

u16Height

Data的高

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.45. ReadImage

【描述】

从档案位置读取一张影像。

【语法】

IVE_IMAGE_S CVI_IVE_ReadImage(IVE_HANDLE pIveHandle, const char *filename, IVE_IMAGE_TYPE_E enType);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

filename

影像档案名称

输入

enType

希望拿到的影像格式

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.46. ReadRawImage

【描述】

从档案位置读取一张Raw Image。

【语法】

IVE_IMAGE_S CVI_IVE_ReadRawImage(IVE_HANDLE pIveHandle, const char *filename, IVE_IMAGE_TYPE_E enType, CVI_U16 u16Width, CVI_U16 u16Height);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

filename

影像档案名称

输入

enType

希望拿到的影像格式

输入

u16Width

影像宽。

输入

u16Height

影像高。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.47. WriteData

【描述】

写入IVE_DATA_S内容到档案位置。

【语法】

CVI_S32 CVI_IVE_WriteData(IVE_HANDLE pIveHandle, const char *filename, IVE_DATA_S *pstData);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

filename

储存的档案位置及档名

输入

pstData

要储存的内容

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.48. WriteMem

【描述】

写入IVE_MEM_INFO_S内容到档案位置。

【语法】

CVI_S32 CVI_IVE_WriteData(IVE_HANDLE pIveHandle, const char *filename, IVE_MEM_INFO_S *pstMem);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

filename

储存的档案位置及档名

输入

pstMem

要储存的内容

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.49. WriteImage

【描述】

写入一张PNG影像到档案位置。

【语法】

CVI_S32 CVI_IVE_WriteImage(IVE_HANDLE pIveHandle, const char *filename, IVE_IMAGE_S *pstImg);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

filename

储存的档案位置及档名

输入

pstImg

要储存的影像内容

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.50. WriteRawImage

【描述】

写入一张影像到档案位置。

【语法】

CVI_S32 CVI_IVE_WriteImg(IVE_HANDLE pIveHandle, const char *filename, IVE_IMAGE_S *pstImg);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

filename

储存的档案位置及档名

输入

pstImg

要储存的影像内容

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.51. Reset Register

【描述】

重置IVE的缓存器为默认值。

【语法】

CVI_S32 CVI_IVE_RESET(IVE_HANDLE pIveHandle, int select);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

select

要重置的IVE Module

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.52. Dump Register

【描述】

输出IVE的缓存器值到Log。

【语法】

CVI_S32 CVI_IVE_DUMP(IVE_HANDLE pIveHandle);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.53. Split DiffFg of BgModel

【描述】

从BgModel的结果取出DiffFg,并储存成YUV影像。

【语法】

CVI_S32 CVI_IVE_DiffFg_Split(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstDiffFg, IVE_DST_IMAGE_S *pstBGDiffFg, IVE_DST_IMAGE_S *pstFrmDiffFg);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstDiffFg

输入

pstBGDiffFg

输出

pstFrmDiffFg

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.54. Split ChgSta of BgModel

【描述】

从BgModel的结果取出ChgSta,并储存成YUV影像。

【语法】

CVI_S32 CVI_IVE_DiffFg_Split(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstChgSta, IVE_DST_IMAGE_S *pstChgStaImg, IVE_DST_IMAGE_S *pstChgStaFg,IVE_DST_IMAGE_S *pstChStaLift);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstChgSta

输入

pstChgStaImg

输出

pstChgStaFg

输出

pstChStaLift

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.55. Query Tasks

【描述】

查询现有Task状态。

【语法】

CVI_S32 CVI_IVE_QUERY(IVE_HANDLE pIveHandle, CVI_BOOL *pbFinish, CVI_BOOL bBlock);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pbFinish

回传task是否结束

输出

bBlock

True表示blocked task

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

头文件:cvi_comm_ive.h cvi_ive.h

3.56. Image2VideoFrameInfo

【描述】

将IVE影像格式转换成Video Frame Info格式。

【语法】

CVI_S32 CVI_IVE_Image2VideoFrameInfo(IVE_IMAGE_S *pstIISrc, VIDEO_FRAME_INFO_S *pstVFIDst);

【参数】

参数名称

描述

输入/输出

pstIISrc

输入的影像内容

输入

pstVFIDst

输出的影像内容

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.57. VideoFrameInfo2Image

【描述】

将Video Frame Info影像格式转换成IVE格式。

【语法】

CVI_S32 CVI_IVE_VideoFrameInfo2Image(VIDEO_FRAME_INFO_S *pstVFISrc, IVE_IMAGE_S *pstIIDst);

【参数】

参数名称

描述

输入/输出

pstIISrc

输入的影像内容

输入

pstVFIDst

输出的影像内容

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.58. FreeM

【描述】

释放一块IVE_MEM_INFO_S结构。

【语法】

CVI_S32 CVI_SYS_FreeM(IVE_HANDLE pIveHandle, IVE_MEM_INFO_S *pstMem);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstMem

要释放的记忆体结构

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.59. FreeI

【描述】

释放一张IVE_IMAGE_S结构。

【语法】

CVI_S32 CVI_SYS_FreeI(IVE_HANDLE pIveHandle, IVE_IMAGE_S *pstImg);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstImg

输入影像。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.60. FreeD

【描述】

释放IVE_DATA_S结构。

【语法】

CVI_S32 CVI_SYS_FreeD(IVE_HANDLE pIveHandle, IVE_DATA_S *pstData);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstData

输入Data。

输入

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.61. Thresh_S16

【描述】

创建S16数据到8bit数据的阀值化任务。

【语法】

CVI_S32 CVI_IVE_Thresh_S16(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_THRESH_S16_CTRL_S *pstThrS16Ctrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc

输入影像指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.62. Thresh_U16

【描述】

创建U16数据到8bit数据的阀值化任务。

【语法】

CVI_S32 CVI_IVE_Thresh_U16(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_THRESH_U16_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc

输入影像指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.63. Resize

【描述】

创建影像Resize任务,支持Bilinear Interpolation及Area Interpolation方法。

【语法】

CVI_S32 CVI_IVE_Resize(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S astSrc[], IVE_DST_IMAGE_S astDst[], IVE_RESIZE_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

astSrc

输入影像数组。不能为空。

输入

astDst

输出的影像数输出组。不能为空。影像类型必须和astSrc相同

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

参数名称

支持图像类型

地址对齐

分辨率

astSrc

U 8C1或U8C3_PLANAR

1byte

astDst

U 8C1或U8C3_PLANAR

1byte

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.64. 16BitTo8Bit

【描述】

创建16bit图像数据到8bit图像数据的线性化任务。

【语法】

CVI_S32 CVI_IVE_16BitTo8Bit (IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_16BIT_TO_8BIT_CTRL_S *pstCtrl, bool bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc

输入影像指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.65. RGB YUV Erode to Dilate

【描述】

【语法】

CVI_S32 CVI_IVE_rgbPToYuvToErodeToDilate(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst1, IVE_DST_IMAGE_S *pstDst2,IVE_FILTER_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc

输入影像指针。不能为空。

输入

pstDst1

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstDst2

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.66. STCandiCorner

【描述】

计算候选角点。

【语法】

CVI_S32 CVI_IVE_STCandiCorner(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc, IVE_DST_IMAGE_S *pstDst, IVE_ST_CANDI_CORNER_CTRL_S *pstCtrl,CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc

输入影像指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h

3.67. Background Subtraction

【描述】

创建背景相减法任务。

【语法】

CVI_S32 CVI_IVE_FrameDiffMotion(IVE_HANDLE pIveHandle, IVE_SRC_IMAGE_S *pstSrc1, IVE_SRC_IMAGE_S *pstSrc2, IVE_DST_IMAGE_S *pstDst,IVE_FRAME_DIFF_MOTION_CTRL_S *pstCtrl, CVI_BOOL bInstant);

【参数】

参数名称

描述

输入/输出

pIveHandle

任务的handle。

输入

pstSrc1

输入影像指针。不能为空。

输入

pstSrc2

输入影像指针。不能为空。

输入

pstDst

输出的影像指针。不能为空。高和宽同pstSrc。

输出

pstCtrl

门坎值参数结构指针,不能为空。

输入

bInstant

参考值

输出

【返回值】

返回值

描述

0

成功

非0

失败

【需求】

  • 头文件:cvi_comm_ive.h cvi_ive.h