Пороговая функция OpenCV Python

искусственный интеллект

cv2.threshhold(): когда значение пикселя выше порога, мы присваиваем этому пикселю новое значение, в противном случае присваиваем ему другое значение

Первым параметром этой функции является исходное изображение, которое обычно представляет собой изображение в градациях серого (похоже, что можно использовать и изображение без градаций серого). Второй параметр — это порог, используемый для классификации значений пикселей. Третий параметр — это новое значение пикселя, которое должно быть назначено, когда значение пикселя превышает пороговое значение.

OpenCV предоставляет несколько различных методов пороговой обработки, это четвертый параметр. Эти методы включают в себя:

 

  1. cv2.THRESH_BINARY Часть, превышающая порог, принимает maxval (максимальное значение), в противном случае принимает 0
  2. cv2.THRESH_BINARY_INV Инверсия THRESH_BINARY
  3. cv2.THRESH_TRUNC Часть, превышающая порог, устанавливается в порог, в противном случае остается неизменной
  4. CV2.THRESH_TOZER Часть, превышающая пороговое значение, не меняется, в противном случае она установлена ​​на 0
  5. 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()