opencv学习—threshold函数的使用(python)

opencv学习—threshold函数的使用

目录

opencv学习—threshold函数的使用

阈值类型

python代码:

示例如下:


参考博客

图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。OpenCV中提供了函数cv2.threshold();

阈值分割法的特点是:适用于目标与背景灰度有较强对比的情况,重要的是背景或物体的灰度比较单一,而且总可以得到封闭且连通区域的边界。

cv2.threshold (src, thresh, maxval, type)

cv2.threshold (源图片, 阈值, 填充色, 阈值类型)

  • src:单通道原图像

  • thresh:阈值,取值范围为(0~255),开始点

  • maxval:填充色,取值范围为(0,255),输出图像中灰度值最大值

  • type:阈值类型,如下所示:

阈值类型

 

关系如下:

python代码:

import cv2
import matplotlib.pyplot as plt
#读入彩色RGB图像,转为灰度图像
img=cv2.imread("C:\\Users\\Lijian\\Desktop\\7.jpg")
img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#不同类型阈值处理
thresh,img1=cv2.threshold(img,1,255,cv2.THRESH_BINARY)
thresh,img2=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
thresh,img3=cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
thresh,img4=cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
thresh,img5=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
titles=('img','THRESH_BINARY','THRESH_BINARY_INV','THRESH_TRUNC','THRESH_TOZERO','THRESH_TOZERO_INV')

images=[img,img1,img2,img3,img4,img5]
for i in range(6):
    plt.subplot(2,3,i+1),plt.imshow(images[i],cmap="gray")
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()

示例如下:

 

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月蹉跎的一杯酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值