OpenCV-Python 图像二值化

一.什么是图像二值化

  • 彩色图像:三个通道:0-255,0-255,0-255,所以可以有2^24位空间

  • 灰度图像:一个通道:0-255,所以有256种颜色

  • 二值图像:只有两种颜色:黑和白,1白色(255) 0黑色(0)

二.图像二值化

Ⅰ先获取阈值:
  • 从直方图找到波峰波谷,作连线处理
  • 从直方图各个点向连线作垂直线,找到最长
  • 在垂直线最长的点做一个offset偏移值,找到阈值
    Alt
Ⅱ根据阈值去二值化图像
  • 图像二值化方法:全局阈值局部阈值
ⅢOpenCV中的二值化方法
  • OpenCV中图像二值化方法:
    -OTSU
    -Triangle

    -自动与手动
  • 自适应阈值

三.全局阈值函数cv2.threshold

· 函数原型:
double threshold(InputArray src, OutputArray dst, double thresh, 
                  double maxval, int type)
 ->retval,dst
· 参数:
  • src - 输入数组/图像(多通道,8位或32位浮点)
  • thresh - 阈值
  • maxval - 最大值,与#THRESH_BINARY和#THRESH_BINARY_INV阈值类型一起使用的最大值(maximum value)
  • type - 阈值类型
  • dst - 输出数组/图像(与src相同大小和类型以及相同通道数的数组/图像)。

此外,特殊值#THRESH_OTSU或#THRESH_TRIANGLE可以与上述值之一组合。 在这些情况下,函数使用Otsu或Triangle算法确定最佳阈值,并使用它而不是指定的阈值。

· 返回值:
  • retval - 阈值 thresh
    若是全局固定阈值算法,则返回thresh参数值。
    若是全局自适应阈值算法,则返回自适应计算得出的合适阈值。
  • dst - 经函数处理后的图像 image
· 阈值类型type:

原灰度图像的像素值:
Alt

  1. 二进制阈值化 THRESH_BINARY :过门限的值为最大值,其他值为0Alt
    Alt

  2. 反二进制阈值化THRESH_BINARY_INV :过门限的值为0,其他值为最大值
    Alt
    Alt

  3. 截断阈值化 THRESH_TRUNC :过门限的值为门限值,其他值不变
    Alt
    Alt

  4. 阈值化为0 THRESH_TOZERO

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值