📅  最后修改于: 2023-12-03 15:18:07.537000             🧑  作者: Mango
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了各种图像处理和计算机视觉算法。其中之一的功能是进行图像阈值化。
图像阈值化是一种图像处理技术,用于将图像转换为二值图像。阈值化的基本思想是选取一个阈值,并将图像中的像素值与该阈值进行比较,根据比较结果将像素设置为两个可能的值之一。一般情况下,像素值高于阈值的部分被设置为一种值(如白色),低于阈值的部分被设置为另一种值(如黑色)。
OpenCV提供了多个函数用于进行图像阈值化。下面是其中几个常用的函数:
retval, threshold = cv2.threshold(src, thresh, maxval, type[, dst])
该函数将输入图像进行阈值化处理,并返回阈值化结果。具体参数如下:
src
:输入图像,必须为灰度图像(单通道)。thresh
:设定的阈值。maxval
:像素值高于阈值时设置的像素值。type
:阈值化的类型,如THRESH_BINARY(二值化)、THRESH_BINARY_INV(反二值化)等。dst
:输出的阈值化结果图像,可选。示例代码:
import cv2
img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
retval, threshold = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
cv2.imshow('Thresholded Image', threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()
threshold = cv2.adaptiveThreshold(src, maxval, adaptiveMethod, thresholdType, blockSize, C[, dst])
该函数对图像进行自适应阈值化处理,并返回阈值化结果。具体参数如下:
src
:输入图像,必须为灰度图像(单通道)。maxval
:像素值高于阈值时设置的像素值。adaptiveMethod
:自适应阈值化的方法,如ADAPTIVE_THRESH_MEAN_C(基于均值的自适应阈值化)等。thresholdType
:阈值类型,如THRESH_BINARY(二值化)、THRESH_BINARY_INV(反二值化)等。blockSize
:用于计算阈值的像素领域大小,必须为奇数。C
:常数,从计算的均值或加权均值中减去的值。dst
:输出的阈值化结果图像,可选。示例代码:
import cv2
img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
threshold = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
cv2.imshow('Adaptive Thresholded Image', threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像阈值化是OpenCV中常用的图像处理操作之一,可以有效地将图像转化为二值图像。OpenCV提供了丰富的函数用于进行图像阈值化,开发者可以根据实际需求选择适合的函数进行使用。以上介绍了两个常用的图像阈值化函数和示例代码,希望对程序员有所帮助。