阈值处理,主要用到函数cv2.threshhold()
示例代码:
'''
This program is used to show how to use threshhold
functions in OpenCV for python
'''
#coding:utf-8
import numpy as np
from cv2 import cv2
#此处不指定0,则按照三通道办法读取,造成自适应阈值无法完成
lena = cv2.imread('black.bmp',0)
#二值化阈值处理
t1,lena_1 = cv2.threshold(lena,127,255,cv2.THRESH_BINARY)
#反向二值化阈值处理
t2,lena_2 = cv2.threshold(lena,127,255,cv2.THRESH_BINARY_INV)
#截断阈值处理
t3,lena_3 = cv2.threshold(lena,127,255,cv2.THRESH_TRUNC)
#超阈值零处理
t4,lena_4 = cv2.threshold(lena,127,255,cv2.THRESH_TOZERO_INV)
#低阈值零处理
t5,lena_5 = cv2.threshold(lena,127,255,cv2.THRESH_TOZERO)
#自适应阈值处理
lena_6 = cv2.adaptiveThreshold(lena,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,3)
#Otus处理,dtype add the cv2.THRESH_OTSU item
t7,lena_7 = cv2.threshold(lena,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
#show these photos
cv2.imshow('lena1',lena_1)
cv2.imshow('lena2',lena_2)
cv2.imshow('lena3',lena_3)
cv2.imshow('lena4',lena_4)
cv2.imshow('lena5',lena_5)
cv2.imshow('lena6',lena_6)
cv2.imshow('lena7',lena_7)
cv2.waitKey()
cv2.destroyAllWindows()
效果图: