cv2.threshhold(): когда значение пикселя выше порога, мы присваиваем этому пикселю новое значение, в противном случае присваиваем ему другое значение
Первым параметром этой функции является исходное изображение, которое обычно представляет собой изображение в градациях серого (похоже, что можно использовать и изображение без градаций серого). Второй параметр — это порог, используемый для классификации значений пикселей. Третий параметр — это новое значение пикселя, которое должно быть назначено, когда значение пикселя превышает пороговое значение.
OpenCV предоставляет несколько различных методов пороговой обработки, это четвертый параметр. Эти методы включают в себя:
- cv2.THRESH_BINARY Часть, превышающая порог, принимает maxval (максимальное значение), в противном случае принимает 0
- cv2.THRESH_BINARY_INV Инверсия THRESH_BINARY
- cv2.THRESH_TRUNC Часть, превышающая порог, устанавливается в порог, в противном случае остается неизменной
- CV2.THRESH_TOZER Часть, превышающая пороговое значение, не меняется, в противном случае она установлена на 0
- cv2.THRESH_TOZERO_INV Инверсия THRESH_TOZERO
Образец кода:
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('00.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]
#pyplot的绘图方法
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()