cv2.thresh阈值分割函数及参数
1.函数
ret, dst = cv2.thresh(src, thresh, maxval, type)
2.参数说明
src*表示输入的图片, thresh表示阈值, maxval表示最大值, type表示阈值的类型,常用的有:
cv2.THRESH_BINARY 表示阈值的二值化操作,大于阈值使用maxval表示,小于阈值使用0表示
cv2.THRESH_BINARY_INV 表示阈值的二值化翻转操作,大于阈值的使用0表示,小于阈值的使用最大值表示
cv2.THRESH_TRUNC 表示进行截断操作,大于阈值的使用阈值表示,小于阈值的不变
cv2.THRESH_TOZERO 表示进行化零操作,大于阈值的不变,小于阈值的使用0表示
cv2.THRESH_TOZERO_INV 表示进行化零操作的翻转,大于阈值的使用0表示,小于阈值的不变
3.代码及说明
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('cat.jpg')
#用于绘制图像
plt.subplot(2, 3, 1)
plt.imshow(img)
plt.title("ORIGINAL")
# 1.进行阈值二值化操作,大于阈值127的,使用255表示, 小于阈值127的,使用0表示
ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
plt.subplot(2, 3, 2)
plt.imshow(thresh1)
plt.title("BINARY")
# 2. 进行阈值二值化翻转操作, 大于阈值127的,使用0表示,小于阈值127的,使用255表示
ret, thresh2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)
plt.subplot(2, 3, 3)
plt.imshow(thresh2)
plt.title("BINARY_INV")
# 3. 进行截断阈值表示,大于阈值127的使用127表示,小于阈值127的不变
ret, thresh3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC)
plt.subplot(2, 3, 4)
plt.imshow(thresh3)
plt.title("TRUNC")
# 4. 对阈值进行0值化表示,大于127的不变,小于127阈值的,用0表示
ret, thresh4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO)
plt.subplot(2, 3, 5)
plt.imshow(thresh4)
plt.title("TOZERO")
# 5. 对阈值进行0值化反向操作, 大于127的用0表示,小于127的不变
ret, thresh5 = cv2.threshold(img, 127, 255