opencv图像二值化 cv2.threshold: 阈值处理(cv2.threshold) 探究(图示+源码)
代码:
import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread(r'C:\Users\HouLw\Desktop\cat.jpg', 0) ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) ret, thresh2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV) ret, thresh3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC) ret, thresh4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO) ret, thresh5 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV) titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV'] images = [img, thresh1, thresh2, thresh3, thresh4, thresh5] for i in range(6): plt.subplot(2, 3, i + 1) plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]), plt.yticks([]) plt.show()
阈值类型:
0表示cv2.THRESH_BINARY 1表示cv2.THRESH_BINARY_INV 2表示cv2.THRESH_TRUNC 3表示cv2.THRESH_TOZERO 4表示cv2.THRESH_TOZERO_INV