13、threshold函数

一、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)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6OAbjiRP-1614212655665)(threshold函数.assets/image-20210129222754482.png)]

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)

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页