---
title: slope
description: "计算图像的梯度值，即一阶微分。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0022.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0022.html
indexId: 4da21c4247af9e5f77606d16f1b5387d557ee07c39b04104bb0898d60726870777
---
# slope

#### 函数功能

计算图像的梯度值，即一阶微分。


#### 函数接口

```
int kcv_slope_acc(const double *_src, size_t rows, size_t cols, double *_dst);
```


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| \_src | 输入图像。 | 非空且申请内存大小为rows\*cols\*sizeof(double) | 输入 |
| rows | 输入图像行数。 | (2, 16384] | 输入 |
| cols | 输入图像列数。 | (2,16384] | 输入 |
| \_dst | 输出图像。 | 非空且申请内存大小与\_src一致 | 输出 |


#### 返回值

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


#### 错误码

| 错误码 | 描述 |
| --- | --- |
| LITHO\_IMG\_STS\_NULL\_PTR\_ERR | 参数“\_src”或“\_dst”存在空指针。 |
| LITHO\_IMG\_STS\_SIZE\_ERR | 参数“rows”或“cols”值小于等于2。 |


#### 示例

```
#include <iostream>
#include <vector>
#include <complex>
#include "kp_litho_img.h"

// 测试函数
void test_kcv_slope_acc() {
    const size_t rows = 5;
    const size_t cols = 5;
    // 创建输入图像
    std::vector<double> src(rows * cols);
    double src_data[5][5] = {
        {0, 0, 0, 0, 0},
        {0, 1, 1, 1, 0},
        {0, 1, 0, 1, 0},
        {0, 1, 1, 1, 0},
        {0, 0, 0, 0, 0}
    };
    for (size_t i = 0; i < rows; i++) {
        for (size_t j = 0; j < cols; j++) {
            src[i * cols + j] = src_data[i][j];
        }
    }
    // 创建输出图像
    std::vector<double> dst(rows * cols);
    // 调用函数
    cv::kcv_slope_acc(src.data(), rows, cols, dst.data());
    // 打印结果
    std::cout << "Gradient Image:\n";
    for (size_t i = 0; i < rows; i++) {
        for (size_t j = 0; j < cols; j++) {
            std::cout << dst[i * cols + j] << " ";
        }
        std::cout << "\n";
    }
}
int main() {
    test_kcv_slope_acc();
    return 0;
}
```

运行结果：

```
Gradient Image:
0 0 0 0 0 
0 0.707107 0 0.707107 0 
0 0 0 0 0 
0 0.707107 0 0.707107 0 
0 0 0 0 0
```
