核心函数:
Cv2.Threshold() 图像阈值化
Cv2.Threshold(Mat src, Mat dst, double thresh,
double maxval, ThresholdTypes type);
-
Mat src
: 输入图像,可以是单通道或多通道的图像。
-
Mat dst
: 输出图像,其大小和类型与输入图像 src
相同。函数将计算的阈值应用于输入图像的每个像素,并将结果存储在输出图像 dst
中。
-
double thresh
: 阈值。这是一个用于将像素值分为两个区域的数值。如果像素值大于阈值,它将被分类为一个区域;如果小于等于阈值,它将被分类为另一个区域。
-
double maxval
: 当像素值大于阈值时,将其设置为的值。通常,这是一个较大的值,例如255。在二进制阈值化中,大于阈值的像素值将被设置为 maxval
,而小于等于阈值的像素值将被设置为0。
-
ThresholdTypes type
: 阈值化的类型,是一个枚举值,用于指定阈值化的具体方式。
注:
-
ThresholdTypes.Binary
(二进制阈值化):
- 作用: 将图像的每个像素值与指定的阈值进行比较,如果大于阈值,则将像素值设为最大值(通常是 255),否则设为最小值(通常是 0)。
-
ThresholdTypes.BinaryInv
(反二进制阈值化):
- 作用: 与 Binary 类似,但是反转了像素值的设定,大于阈值的像素值变为最小值,小于等于阈值的像素值变为最大值。
-
ThresholdTypes.Trunc
(截断阈值化):
-
ThresholdTypes.Tozero
(被零截断):
- 作用: 小于阈值的像素值被截断为零,大于等于阈值的像素值保持不变。
-
ThresholdTypes.TozeroInv
(反被零截断):
- 作用: 与 Tozero 类似,但是反转了像素值的设定。
-
ThresholdTypes.Mask
(掩膜模式):
- 作用: 在进行其他类型的阈值化操作时,将阈值化后的像素值应用到原图像上。
-
ThresholdTypes.Otsu
(Otsu's二值化):
- 作用: 根据大津法(Otsu's method)确定图像的自适应阈值。
-
ThresholdTypes.Triangle
(三角形阈值化):
Cv2.AdaptiveThreshold() 自适应阈值化
Cv2.AdaptiveThreshold(Mat src, Mat dst, double maxValue,
AdaptiveThresholdTypes adaptiveMethod,
ThresholdTypes thresholdType, int blockSize, double C);
Mat src
:输入图像。
Mat dst
:输出图像,与输入图像 src
具有相同的大小和类型。
double maxValue
:当像素值大于阈值时,将其设置为的值。
AdaptiveThresholdTypes adaptiveMethod
:自适应方法的类型,决定如何计算局部阈值。
AdaptiveThresholdTypes.MeanC
:计算邻域块的均值,阈值为均值减去常量 C
。
AdaptiveThresholdTypes.GaussianC
:计算邻域块的加权和,权重由高斯窗口确定,阈值为和减去常量 C
。
-
ThresholdTypes thresholdType
: 阈值化的类型,是一个枚举值,用于指定阈值化的具体方式。与 Cv2.Threshold
函数中的枚举值一样,包括 Binary、BinaryInv、Otsu 等。
-
int blockSize
: 用于计算每个像素的邻域块大小。这是一个正奇数,例如3、5、7等。块的大小决定了计算每个像素的局部阈值时使用的像素邻域。
-
double C
: 从计算的局部阈值中减去的常量。该常量用于调整阈值的大小,可以为正数或负数。