---
title: Max
description: "此函数计算源图像指定区域内的最大像素值。在多通道图像情况下，最大值在每个通道上分别计算并存储在数组max中。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_hmpp_06_0188.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_hmpp_06_0188.html
indexId: f255bdea4498c8a3504e6c48e67ffac8dacdefff6eadb08e2e8c17a514ef7f9377
---
# Max

此函数计算源图像指定区域内的最大像素值。在多通道图像情况下，最大值在每个通道上分别计算并存储在数组max中。

函数接口声明如下：

- 选择单通道最大像素值：
  HmppResult HMPPI_Max_8u_C1R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t *max);

  HmppResult HMPPI_Max_16u_C1R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t *max);

  HmppResult HMPPI_Max_16s_C1R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t *max);

  HmppResult HMPPI_Max_32f_C1R(const float *src, int32_t srcStep, HmppiSize roiSize, float *max);

- 选择多通道最大像素值：
  HmppResult HMPPI_Max_8u_C3R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t max[3]);

  HmppResult HMPPI_Max_16u_C3R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t max[3]);

  HmppResult HMPPI_Max_16s_C3R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t max[3]);

  HmppResult HMPPI_Max_32f_C3R(const float *src, int32_t srcStep, HmppiSize roiSize, float max[3]);

  HmppResult HMPPI_Max_8u_AC4R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t max[3]);

  HmppResult HMPPI_Max_16u_AC4R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t max[3]);

  HmppResult HMPPI_Max_16s_AC4R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t max[3]);

  HmppResult HMPPI_Max_32f_AC4R(const float *src, int32_t srcStep, HmppiSize roiSize, float max[3]);

  HmppResult HMPPI_Max_8u_C4R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t max[4]);

  HmppResult HMPPI_Max_16u_C4R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t max[4]);

  HmppResult HMPPI_Max_16s_C4R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t max[4]);

  HmppResult HMPPI_Max_32f_C4R(const float *src, int32_t srcStep, HmppiSize roiSize, float max[4]);


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| src | 指向源图像感兴趣区域的指针。 | 非空 | 输入 |
| srcStep | 源图像中连续行起点之间的距离（以字节为单位）。 | 非负整数 | 输入 |
| roiSize | 源和目标图像感兴趣区域的大小（以像素为单位）。 | roiSize.width∈(0, INT\_MAX]，roiSize.height∈(0, INT\_MAX] | 输入 |
| max | 指向最大像素值的指针（用于单通道数据）。 | 非空 | 输入/输出 |
| max[] | 指向最大像素值的数组（用于多通道数据）。 | 非空 | 输入/输出 |


#### 返回值

- 成功：返回HMPP_STS_NO_ERR。
- 失败：返回错误码。


#### 错误码

| 错误码 | 描述 |
| --- | --- |
| HMPP\_STS\_NULL\_PTR\_ERR | src、max中存在空指针。 |
| HMPP\_STS\_STEP\_ERR | srcStep小于或等于0。 |
| HMPP\_STS\_ROI\_ERR | roiSize.width > 步长。 |
| HMPP\_STS\_SIZE\_ERR | roiSize.width或roiSize.height小于或等于0。 |
| HMPP\_STS\_NOT\_EVEN\_STEP\_ERROR | srcStep不能被src所属数据类型的字节长度整除。 |


#### 示例

```
void MaxExample()
{
HmppiSize roi = {6, 6};
const float src[8*8] = {124.5, 913, 13453434, 57.5, 23.75, 63.375, 98.0625, 2343,
57.540001, 16.845346, 256.14001, 98.709999, 736.23999, 459.64999, 80.102997, 90.989998,
4013, 4238, 11940, 32200, 15709, 38807, 4239, 11942,
95345008, 25438044, 8.5345428e+09, 1.0534482e+08, 0.2, 0.23, 0.36000001, 0.56999999,
0.25001001, 0.87011999, 0.99010998, 0.54004002, 0.25999999, 0.33000001, 0.63, 0.75,
0.75001001, 0.90012002, 53450.691, 0.34004, 16411.25, 12293.375, 12779.5, 15498.062,
16411.211, 12293.377, 12779.52, 15498.062, 65519, 65520, 65519, 65520,
65504, 65504, 0.00013, 0.00013, 0, 1, 1, 3.4028235e+38};
float vMax;
int32_t srcStep = 8 * sizeof(float);
HmppResult result = HMPPI_Max_32f_C1R(src, srcStep, roi, &vMax);
printf("result = %d \n vMax = ", result);
if (result != HMPP_STS_NO_ERR) {
printf("result error: %d\n", result);
}
printf("%f\n", vMax);
return 0;
}
int main(void)
{
MaxExample();
return 0;
}
```

运行结果：

```
result = 0
vMax = 8.5345428e+09
```
