OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
图像阈值处理

目标

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

简单阈值处理

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

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

参数
src输入数组。
dst输出数组,与 src 具有相同的尺寸和类型以及相同数量的通道。
thresh阈值。
maxval对于 cv.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 - 决定如何计算阈值

试试它