【OpenCV3.3+Python3.6】图像二值化处理函数cv2.threshold

31 篇文章 1 订阅
31 篇文章 0 订阅

图像二值化

 

在图像处理中经常用到二值化,图像的二值化就是将图像上的像素点的灰度值设置为0 或255。

主要来讲一下图像二值化的函数

cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下:

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

参数含义:

  1. src:源图片,必须是单通道灰度图,即要进行二值化之前要对图像进行灰度处理
  2. thresh:阈值,取值范围0~255
  3. maxval:填充色,取值范围0~255
  4. type:阈值类型,具体有以下几种类型:

THRESH_BINARY=0,  THRESH_BINARY_INV,   THRESH_TRUNC,  THRESH_TOZERO,   THRESH_TOZERO_INV, THRESH_OTSU,  THRESH_TRIANGLE,   THRESH_MASK

每个类型的含义用法如下

通常情况,我们一般不知道设定怎样的阈值thresh才能得到比较好的二值化效果,只能去试。如对于一幅双峰图像(理解为图像直方图中存在两个峰),我们指定的阈值应尽量在两个峰之间的峰谷。这时,就可以用第四个参数THRESH_OTSU,它对一幅双峰图像自动根据其直方图计算出合适的阈值(对于非双峰图,这种方法得到的结果可能不理想)。

对于双峰图,我们需要多传入一个参数cv2.THRESH_OTSU,并且把阈值thresh设为0,算法会找到最优阈值,并作为第一个返回值ret返回。

cv2.THRESH_OTSU参数用法如下:

函数返回参数

ret,binary=cv2.threshold (src, thresh, maxval, type)

  1. ret:图像二值化处理的阈值
  2. binary:图像二值化处理之后的结果图 


代码演示

ret,mask = cv2.threshold(gray,175,255,cv2.THRESH_BINARY)
plt.imshow(mask,cmap='gray')
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

上面代码的作用是,将灰度图img2gray中灰度值小于175的点置0,灰度值大于175的点置255

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Demo.demo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值