函数名 threshold
C++ 版
double threshold( InputArray src, OutputArray dst,double thresh, double maxval, int type );
参数说明:
函数返回值:做阈值分割的像素阈值;
src: 输入图像矩阵,单通道的8位或32位图像矩阵,可以是float类型;
dst:输出图像矩阵,与src类型一致,size大小一致;
thresh:分割所需的图像阈值;
maxval: 当type 选择ThresholdTypes::THRESH_BINARY,或ThresholdTypes::THRESH_BINARY_INV二者之一时,像素的最大值;
type:类型有:
enum ThresholdTypes {
THRESH_BINARY = 0, // 大于thresh 为 maxval,否则为 0
THRESH_BINARY_INV = 1,// 大于thresh 为 0,否则为 maxval
THRESH_TRUNC = 2, // 大于thresh 为 thresh,否则为 0
THRESH_TOZERO = 3, // 大于thresh 不变,否则为 0
THRESH_TOZERO_INV = 4, // 大于thresh 为 0,否则 不变
THRESH_MASK = 7,
THRESH_OTSU = 8, // 使用OTSU阈值
THRESH_TRIANGLE = 16 // 使用三角形算法阈值
};
注意:
最后两种是配合前5种算法一起使用的,具体用法为:
threshold(Src8, Dst8, 78, 255, ThresholdTypes::THRESH_BINARY | ThresholdTypes::THRESH_OTSU);
// 这里阈值78不起作用