opencv阈值分割threshold函数用法详解

函数名 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不起作用

你可能感兴趣的:(opencv,opencv,计算机视觉)