固定阈值分割

THRESH_BINARY:

dst(x,y)=\begin{cases}&maxval { if } src(x,y)>thresh & 0 otherwise \end{cases} 

THRESH_BINARY_INV:

 dst(x,y)=\begin{cases}&0 { if } src(x,y) >thresh& maxval. otherwise \end{cases}

THRESH_TRUNC:

dst(x,y)=\begin{cases} & threshold{ if } src(x,y)>thresh & src(x,y) ,otherwise \end{cases}

THRESH_TOZERO:

dst(x,y)=\begin{cases} & src(x,y),{ if } src(x,y)>thresh & 0,otherwise \end{cases}

THRESH_TOZERO_INV:

dst(x,y)=\begin{cases} & 0 ,{ if } src(x,y)>thresh & src(x,y),otherwise \end{cases}

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('test3.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)
images = [img,thresh1,thresh2,thresh3,thresh4,thresh5]
for i in range(6):
    plt.subplot(2,3,i+1)
    plt.imshow(images[i],cmap='gray')
    plt.xticks([])
    plt.yticks([])
plt.suptitle('fixed threshold')
plt.show()

运行结果:

 

使用到的test3.jpg:

猜你喜欢

转载自blog.csdn.net/winggyn/article/details/113076423