OpenCV 4.11.0
开源计算机视觉
加载中...
搜索中...
无匹配项
图像阈值化

目标

  • 在本教程中,您将学习简单阈值化、自适应阈值化、Otsu 阈值化等。
  • 您将学习以下函数:cv.thresholdcv.adaptiveThreshold 等。

简单阈值化

这里,问题很简单。如果像素值大于阈值,则将其赋值为一个值(可能是白色),否则将其赋值为另一个值(可能是黑色)。

我们使用函数:cv.threshold (src, dst, thresh, maxval, type)

参数
src输入数组。
dst与 src 大小、类型和通道数相同的输出数组。
thresh阈值。
maxvalcv.THRESH_BINARYcv.THRESH_BINARY_INV 阈值类型一起使用的最大值。
type阈值类型(参见 cv.ThresholdTypes)。

阈值类型 - OpenCV 提供不同的阈值化样式,由函数的第四个参数决定。不同的类型有

注意
如果使用 cv.THRESH_OTSUcv.THRESH_TRIANGLE 标志,输入图像应仅为单通道。

试一试

自适应阈值化

在上一节中,我们使用全局值作为阈值。但这在图像在不同区域具有不同光照条件的所有情况下可能都不好。在这种情况下,我们采用自适应阈值化。在此,算法计算图像小区域的阈值。因此,我们为同一图像的不同区域获得不同的阈值,这为具有不同照明的图像提供了更好的结果。

我们使用函数:cv.adaptiveThreshold (src, dst, maxValue, adaptiveMethod, thresholdType, blockSize, C)

参数
src源 8 位单通道图像。
dst与 src 大小和类型相同的目标图像。
maxValue分配给满足条件的像素的非零值
adaptiveMethod要使用的自适应阈值算法。
thresholdType阈值类型,必须为 cv.THRESH_BINARYcv.THRESH_BINARY_INV
blockSize用于计算像素阈值的像素邻域大小:3、5、7 等。
C从均值或加权均值中减去的常数(参见下面的详细信息)。通常为正数,但也可能为零或负数。

adaptiveMethod - 它决定如何计算阈值

试一试