---
title: threshold
description: "threshold函数用于图像二值化。它将图像中的像素值与指定的阈值进行比较，根据比较结果将像素值转换为二值图像（仅包含两个值）。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0035.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0035.html
indexId: 789cd6432809ad24b9c187d46d8f357d054c5caed48865e3d2e1d3a44ef6fbe877
---
# threshold

#### 函数功能

threshold函数用于图像二值化。它将图像中的像素值与指定的阈值进行比较，根据比较结果将像素值转换为二值图像（仅包含两个值）。


#### 函数接口

```
double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type);
```


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| src | 输入图像。 | 非空 | 输入 |
| dst | 输出图像。 | Mat类型 | 输出 |
| thresh | 阈值。 | (\-inf, inf) | 输入 |
| maxval | 超过（或不超过）阈值时赋予的最大值。 | (\-inf, inf) | 输入 |
| type | 阈值类型。 | THRESH\_BINARY、THRESH\_BINARY\_INV、THRESH\_TRUNC、THRESH\_TOZERO、THRESH\_TOZERO\_INV | 输入 |


#### 返回值

- 阈值。


#### 示例

```
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    // 创建一个5x5的灰度图像
    cv::Mat src = (cv::Mat_<uint8_t>(5, 5) << 50, 50, 50, 50, 50,
                                               50, 150, 150, 150, 50,
                                               50, 150, 200, 150, 50,
                                               50, 150, 150, 150, 50,
                                               50, 50, 50, 50, 50);

    // 应用二值化阈值，阈值设定为100，最大值设定为255
    cv::Mat dst;
    cv::threshold(src, dst, 100, 255, cv::THRESH_BINARY);

    // 输出图像
    std::cout<< dst << std::endl;

    return 0;
}
```

运行结果：

```
[[  0   0   0   0   0]
 [  0 255 255 255   0]
 [  0 255 255 255   0]
 [  0 255 255 255   0]
 [  0   0   0   0   0]]
```
