opencv图像阈值分割

本文深入探讨了图像阈值分割的基本概念及应用,包括全局阈值分割的不同类型,如二值化、反转二值化、截断等,并介绍了自适应阈值算法如大津法和三角法的选择。通过Python与OpenCV的结合,展示了各种阈值分割准则的效果对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像阈值

基本概念:图像阈值一般用于图像阈值分割,图像阈值即图像分割的基准,一般对象为灰度图像,基于此可完成图像的二值化。


全局阈值分割

opencv中提供了不同的阈值准则,以python操作opencv为例:
ret, dst = cv2.threshold(src, thresh, maxval, type)

  • src:输入图,只能输入单通道图像,通常来说为灰度图
  • dst:输出图,一般为二值图像
  • thresh:阈值
  • maxval:当像素值超过了阈值(或者小于阈值,根据type来决定)所赋予的值
  • type:二值化操作的类型,包含以下5种类型:cv2.THRESH_BINARY;cv2.THRESH_BINARY_INV;cv2.THRESH_TRUNC;cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV
  • cv2.THRESH_BINARY 超过阈值部分取maxval(最大值),否则取0
  • cv2.THRESH_BINARY_INV THRESH_BINARY的反转
  • cv2.THRESH_TRUNC 大于阈值部分设为阈值,否则不变
  • cv2.THRESH_TOZERO 大于阈值部分不改变,否则设为0
  • cv2.THRESH_TOZERO_INV THRESH_TOZERO的反转

另外,type值还有两个选择,为自适应阈值算法,不是固定阈值,此时传入参数thresh不会起作用。

cv2.THRESH_OTSU 使用大津法选择最优的thresh;

cv2.THRESH_TRIANGLE 使用三角法确定thresh;

大津算法(自适应阈值算法)
  • 确定最佳阈值,使背景和目标之间的类间方差最大(因为二者差异最大)
    OTSU
    μ\muμ为整张图片的灰度均值,μ0\mu_0μ0μ1\mu_1μ1分别为背景和目标两类的灰度均值,ω0\omega_0ω0ω1\omega_1ω1分别代表两类的面积,在灰度直方图中即每一类像素的个数占所有像素个数的比例,ω0+ω1=1\omega_0+\omega_1=1ω
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值