Python-OpenCV-二值化

本文介绍了图像二值化在简化图像中的应用,包括普通阈值处理(如cv2.THRESH_BINARY)、自适应阈值(如GaussianC型)以及Otsu方法的选择。着重讲解了不同阈值处理方式及其适用场景。
摘要由CSDN通过智能技术生成

二值化

图像二值化能简化图像,提取关键信息。它可以用于图像的分割、边缘检测、形态学操作等。

阈值

# 普通阈值

'''

10为阈值;

255为像素值上限;

cv2.THRESH_BINARY为二值化类型,有二值化阈值处理(cv2.THRESH_BINARY)、反二值化阈值处理(cv2.THRESH_BINARY_INV)、截断阈值化处理(cv2.THRESH_TRUNC)、超阈值零处理(cv2.THRESH_TOZERO_INV)、低阈值零处理(cv2.THRESH_TOZERO)等
'''

_, img_binary = cv2.threshold(img_gray, 10, 255, cv2.THRESH_BINARY)

自适应阈值处理

如果图像色彩不均衡,可以使用自适应阈值处理。自适应阈值通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用该阈值对当前像素点进行处理。

# 自适应阈值

'''

255为像素值上限;

cv2.ADAPTIVE_THRESH_GAUSSIAN_C为高斯加权平均,自适应的类型;

9为规定领域大小,必须为奇数;当blockSize越大,

参与计算阈值的区域也越大,细节轮廓就变得越少,整体轮廓越粗越明显;

C为阈值等于均值或者加权值减去这个常数,得到的就是最终阈值,

当C越大,整体图像白色像素就越多。

'''

img_binary_adaptive = cv2.adaptiveThreshold(

    img_gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 9, C=1)

Otsus

Otsu方法会遍历所有可能阈值,从而找到最佳的阈值。

Otsus适合于图像灰度直方图具有双峰的情况,他会在双峰之间找到一个值作为阈值。

# Otsu方法自动可以找到一个自认为最好的阈值,前提是要把阈值设为0(对此图片不合适)

_, img_binary_otsu = cv2.threshold(img_gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值