一、threshold()函数形式
retval,dst = cv2.threshold(src,thresh,maxval,type)
-
输入参数:
- src:需要处理的图像
- thresh:阈值
- maxval:最大像素值
- type:阈值分割类型
-
输出参数:
- retval:阈值
- dst:处理后的图像
二、OpenCV实现不同阈值分割
2.1、二值分割
retval_bin,img_bin = cv2.threshold(img,128,512,type=cv2.THRESH_BINARY)
cv2.imshow('bin',img_bin)
2.2、反二值分割
retval_bininl,img_binivl = cv2.threshold(img,128,512,type=cv2.THRESH_BINARY_INV)
cv2.imshow('bininv',img_binivl)
2.3、截断阈值分割
retval_trunc,img_trunc = cv2.threshold(img,128,512,type=cv2.THRESH_TRUNC)
cv2.imshow('trunc',img_trunc)
2.4、阈值化分割
retval_tozero,img_tozero = cv2.threshold(img,128,512,type=cv2.THRESH_TOZERO)
cv2.imshow('tozero',img_tozero)
2.5、反阈值化分割
retval_tozeroinv,img_tozeroinv = cv2.threshold(img,128,512,type=cv2.THRESH_TOZERO_INV)
cv2.imshow('tozeroinv',img_tozeroinv)
三、完整代码
#Author:MuMengSunny
#Filename:threadhold函数
import cv2
img = cv2.imread(r'F:\image\lena512.bmp',cv2.IMREAD_UNCHANGED)
retval_bin,img_bin = cv2.threshold(img,128,512,type=cv2.THRESH_BINARY) # 二值分割
retval_bininv,img_bininv = cv2.threshold(img,128,512,type=cv2.THRESH_BINARY_INV) # 反二值分割
retval_trunc,img_trunc = cv2.threshold(img,128,512,type=cv2.THRESH_TRUNC) # 截断分割
retval_tozero,img_tozero = cv2.threshold(img,128,512,type=cv2.THRESH_TOZERO) # 阈值化分割
retval_tozeroinv,img_tozeroinv = cv2.threshold(img,128,512,type=cv2.THRESH_TOZERO_INV) # 反阈值化分割
cv2.imshow('original',img)
cv2.imshow('bin',img_bin)
cv2.imshow('bininv',img_bininv)
cv2.imshow('trunc',img_trunc)
cv2.imshow('tozero',img_tozero)
cv2.imshow('tozeroinv',img_tozeroinv)