如何使用Python OpenCV执行图像的不同简单阈值处理?
简单阈值处理 中,我们定义一个阈值,如果像素值大于阈值,则将其分配值(例如255),否则将其分配另一个值(例如0)。
可以使用函数 cv2.threshold() 应用简单阈值处理。它接受四个参数–源图像,阈值,maxVal和阈值类型。
OpenCV 提供以下不同类型的阈值处理–
- cv2.THRESH_BINARY – 在此阈值处理中,像素值大于阈值的像素值被分配为255,否则被分配为0。
-
cv2.THRESH_BINARY_INV – 它是cv2.THRESH_BINARY的相反情况。
-
cv2.THRESH_TRUNC – 在此阈值处理中,像素值高于阈值被分配为阈值,其他像素保持不变。
-
cv2.THRESH_TOZERO – 在此阈值处理中,像素值低于阈值被分配为零,其他像素保持不变。
-
cv2.THRESH_TOZERO_INV – cv2.THRESH_TOZERO的相反情况。
语法
参数
-
img –输入灰度图像。它是 numpy.ndarray 。
-
thresh_val –用于分类像素值的阈值。如果像素值高于阈值,则将其分配一个值,否则将另一个值分配给它。
-
max_val –如果像素值高于(有时低于)阈值,则分配给像素的最大值。
-
thresh_type –要应用的阈值类型。
它返回全局阈值和阈值图像。
让我们通过一些Python示例来理解不同的简单阈值处理。
输入图像
下面这张图片将作为以下示例的输入文件。
示例1
在此程序中,我们对输入图像应用二进制阈值处理。
输出
当您运行上述程序时,它将生成以下输出。
以上输出显示了应用 二进制阈值处理 后的阈值图像。
示例2
在此程序中,我们将在输入图像上应用不同的 简单阈值处理 。
输出
运行上述Python程序时,将产生以下输出。
上面的输出显示在应用不同的简单阈值后显示的不同图像。