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

目标

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

简单阈值处理

这里,事情很简单。如果像素值大于阈值,则将其分配一个值(可能是白色),否则将其分配另一个值(可能是黑色)。

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

参数
src输入数组。
dst与 src 具有相同大小和类型以及相同通道数的输出数组。
thresh阈值。
最大值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 - 它决定如何计算阈值

试试看