---
title: 枚举类型
description: "常量HmppResult枚举了HMPP函数返回的状态值，表明操作是否有错误。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_hmpp_06_0026.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_hmpp_06_0026.html
indexId: afd1658c27b83a0f28e01a04808044fcfa41c17ee08d685f9b88578a7a501b0075
---
# 枚举类型

常量HmppResult枚举了HMPP函数返回的状态值，表明操作是否有错误。

详细的信号处理函数的有效状态值以及错误信息请参见函数返回值。

- 枚举类型HmppAlgMode定义了一些函数使用的算法类型：

```
typedef enum {
HMPP_ALG_AUTO,      // Automatic algorithm selection based on the data scale.
HMPP_ALG_DEFAULT,   // Direct calculation based on definition.
HMPP_ALG_FFT,       // Use FFT to accelerate computing.
} HmppAlgMode;
```


- 枚举类型HmppNormMode定义了一些函数使用的算法类型：

```
typedef enum {
HMPP_NORM_NORMAL,
HMPP_NORM_BIASED,
HMPP_NORM_UNBIASED,
} HmppNormMode;
```


- 枚举类型HmppCmpOp定义了临界值函数（threshold）中的关系操作符类型：

```
typedef enum {
HMPP_CMP_LESS,    //当src[i]<level时，将level的值赋给dst[i]，否则将src[i]的值赋给dst[i].
HMPP_CMP_GREATER  //当src[i]>level时，将level的值赋给dst[i]，否则将src[i]的值赋给dst[i].
} HmppCmpOp;
```


- 枚举类型HmppRoundMode定义了转换函数中使用的舍入模式：

```
typedef enum {
HMPP_RND_ZERO,        //取整舍入，对于浮点数输入，强制转换为整型输出
HMPP_RND_NEAR,        //最近偶数舍入，四舍六入五取偶
HMPP_RND_FINANCIAL    //四舍五入
} HmppRoundMode;
```


- 枚举类型HmppHintAlgorithm定义了一些函数中使用的计算方式类型，具体表现为计算速度快但有精度损失，或者保证精度但计算速度慢：

```
typedef enum {
HMPP_ALG_HINT_NONE,        //与HmppAlgHintAccurate一样，保证精度，计算速度慢
HMPP_ALG_HINT_FAST
,
//计算速度快，有精度损失
HMPP_ALG_HINT_ACCURATE     //保证结果精度，计算速度慢
} HmppHintAlgorithm;
```


- 枚举类型HmppZCType定义了跨0次数计算函数中使用的计算方法类型：

```
typedef enum {
HMPP_ZCR,
HMPP_ZCX_OR,
HMPP_ZCC
} HmppZCType;
```


- 枚举类型HmppiBorderType定义了图像边界填充的方法类型：

```
typedef enum {
HMPPI_BORDER_REPL = 1,
HMPPI_BORDER_WRAP = 2,
HMPPI_BORDER_MIRROR = 3,
HMPPI_BORDER_MIRROR_R = 4,
HMPPI_BORDER_DEFAULT = 5,
HMPPI_BORDER_CONST = 6,
HMPPI_BORDER_TRANSP = 7,
HMPPI_BORDER_IN_MEM_TOP = 0x0010,
HMPPI_BORDER_IN_MEM_BOTTOM = 0x0020,
HMPPI_BORDER_IN_MEM_LEFT = 0x0040,
HMPPI_BORDER_IN_MEM_RIGHT = 0x0080,
HMPPI_BORDER_IN_MEM = HMPPI_BORDER_IN_MEM_LEFT | HMPPI_BORDER_IN_MEM_TOP | \
HMPPI_BORDER_IN_MEM_RIGHT | HMPPI_BORDER_IN_MEM_BOTTOM, // 0xF0
} HmppiBorderType;
```

边界填充说明如下：

  - HMPP_BORDER_CONST：
    所有边框像素的值都设置为常数。使用恒定边框时，所有边框像素的值都将设置为borderValue参数中指定的恒定值。 在下图中，此常数值标记为V。红色标记的正方形对应于从源图像ROI复制的像素。

  - HMPP_BORDER_DEFAULT：
    边框设置为HMPP_BORDER_CONST，填充值依据基础操作选用填充的固定值。比如膨胀功能接口其borderValue= MIN_VALUE（源数据类型的最小值），腐蚀功能接口其borderValue= MAX_VALUE（源数据类型的最大值），下图用m表示源图像数据类型固定值。

  - HMPP_BORDER_REPL：
    边框从边缘像素复制而来。当使用复制的border时，从源图像边界像素获得边界像素的值，如下图所示。

  - HMPP_BORDER_IN_MEM：
    边框是从内存中的源图像像素获得的。如果ROI不能覆盖源图像的内部边框像素，请使用此边框类型。在这种情况下，从内存中的源图像像素获得边界像素的值。在下图中，标记为红色的正方形对应于从源图像ROI复制的像素。黑色值的正方形对应于内存中的源图像像素。

  - HMPP_BORDER_MIRROR：
    边界像素从源图像边界像素镜像而来。当使用镜像边框时，边框像素的值是从源图像边界像素获得的，如下图所示。用红色标记的正方形对应于从源图像ROI复制的像素。绿色值的正方形对应于边框像素，该边框像素从源图像像素镜像获得。
