threshold
函数功能
threshold函数用于图像二值化。它将图像中的像素值与指定的阈值进行比较,根据比较结果将像素值转换为二值图像(仅包含两个值)。
函数接口
1 | 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  | 
输入  | 
返回值
- 成功:返回KP_CV_SUCCESS。
 - 失败:返回错误码。
 
错误码
错误码  | 
描述  | 
|---|---|
INVALID_PARAM_MSG  | 
输入图像为空。  | 
NOT_SUPPORT_MSG  | 
输入图像类型错误或type是不支持的类型。  | 
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | #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; }  | 
运行结果:
1 2 3 4 5  | [[ 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]]  | 
父主题: 接口定义