---
title: acldvppAdjustContrast
description: "每个算子有两段接口，必须先调用“acldvppAdjustContrastGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小，再调用“acldvppAdjustContrast”接口执行计算。两段式接口如下："
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_0599.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_0599.html
indexId: 75a5176352f0a4e2a097bc7a72e88f60ce7f11a08ba0ae734d96aa4b49f35cc1105
---
# acldvppAdjustContrast

#### 接口原型

每个算子有两段接口，必须先调用“acldvppAdjustContrastGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小，再调用“acldvppAdjustContrast”接口执行计算。两段式接口如下：

- acldvppStatus acldvppAdjustContrastGetWorkspaceSize(const aclTensor *self, float factor, aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor)
- acldvppStatus acldvppAdjustContrast(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)


#### 函数功能

- 算子功能：调节图像对比度。
- 计算公式：
  out = (self - mean) * factor + mean，其中mean为图片灰度图的均值。


#### acldvppAdjustContrastGetWorkspaceSize

- 接口定义：
  aclnnStatus acldvppAdjustContrastGetWorkspaceSize(const aclTensor *self, float factor, aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor)

- 参数说明：

  - self：表示算子输入Tensor，需调用    aclCreateTensor
接口创建aclTensor类型的数据（数据存放在Device侧），输入Tensor的dataType支持UINT8/FLOAT、Format支持NCHW/NHWC、不支持    非连续的Tensor
，同时N支持1或空、C支持1和3（1表示输入GRAY图，3表示输入RGB图）。
  - factor：图像亮度调节参数，非负数。
  - out：表示算子输出Tensor，需调用    aclCreateTensor
接口创建aclTensor类型的数据（数据存放在Device侧），输出Tensor的dataType支持UINT8/FLOAT、Format支持NCHW/NHWC、不支持    非连续的Tensor
，同时N只支持1、C支持1和3（1表示输入GRAY图，3表示输入RGB图），dataType、Format、Shape需要和self一致。
  - workspaceSize：返回用户需要在Device侧申请的workspace大小。
  - executor：返回op执行器，包含了算子计算流程。
- 返回值：
  返回acldvppStatus状态码，具体请参见acldvpp返回码。


#### acldvppAdjustContrast

- 接口定义：
  acldvppStatus acldvppAdjustContrast(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)

- 参数说明：

  - workspace：需调用    aclrtMalloc
接口申请Device内存，内存大小为workspaceSize，    aclrtMalloc
接口输出的内存地址在此处传入。
  - workspaceSize：与acldvppAdjustContrastGetWorkspaceSize接口获取的workspaceSize保持一致。
  - executor：op执行器，包含了算子计算流程，与acldvppAdjustContrastGetWorkspaceSize接口的executor保持一致。
  - stream：指定执行任务的Stream，可复用已创建的Stream节省资源或调用    aclrtCreateStream
接口创建Stream，再作为入参在此处传入。
- 返回值：
  返回acldvppStatus状态码，具体请参见acldvpp返回码。


#### 约束与限制

支持图像分辨率范围在[6*4~4096*8192]。
