图像阈值处理可莉版


一、简单阈值处理(固定阈值)

读取图像

简单阈值处理是最基础的阈值处理方法。它通过设定一个固定的阈值,将图像中的像素分为两类。

OpenCV 提供了 cv2.threshold() 函数来实现这一功能。

函数原型

retval, dst = cv2.threshold(src, thresh, maxval, type)

参数说明

src: 输入图像,通常为灰度图像。
thresh: 设定的阈值。
maxval: 当像素值超过(或小于,根据类型)阈值时,赋予的新值。
type: 阈值处理的类型,常见的类型有:
cv2.THRESH_BINARY: 如果像素值大于阈值,则赋予 maxval,否则赋予 0。
cv2.THRESH_BINARY_INV: 与 cv2.THRESH_BINARY 相反,如果像素值大于阈值,则赋予 0,否则赋予 maxval。
cv2.THRESH_TRUNC: 如果像素值大于阈值,则赋予阈值,否则保持不变。
cv2.THRESH_TOZERO: 如果像素值大于阈值,则保持不变,否则赋予 0。
cv2.THRESH_TOZERO_INV: 与 cv2.THRESH_TOZERO 相反,如果像素值大于阈值,则赋予 0,否则保持不变。
返回值
retval: 实际使用的阈值(在某些情况下可能与设定的阈值不同)。
dst: 处理后的图像。

 	img = cv2.imread('D:\Word\keli.jpg', 0)
    # 简单阈值处理
    ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
    # 显示结果
    cv2.imshow('Binary Threshold', thresh1)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

在这里插入图片描述

二、自适应阈值处理

在某些情况下,图像的亮度分布不均匀,使用固定的阈值可能无法得到理想的效果。自适应阈值处理通过为图像的不同区域计算不同的阈值,从而更好地处理这种情况。

函数原型
dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
参数说明

src: 输入图像,通常为灰度图像。 maxValue: 当像素值超过(或小于,根据类型)阈值时,赋予的新值。
adaptiveMethod: 自适应阈值计算方法,常见的类型有: cv2.ADAPTIVE_THRESH_MEAN_C:
阈值是邻域的平均值减去常数 C。 cv2.ADAPTIVE_THRESH_GAUSSIAN_C: 阈值是邻域的加权平均值减去常数
C,权重由高斯函数确定。 thresholdType: 阈值处理的类型,通常为 cv2.THRESH_BINARY 或
cv2.THRESH_BINARY_INV。 blockSize: 计算阈值时使用的邻域大小,必须为奇数。 C:
从平均值或加权平均值中减去的常数。 返回值 dst: 处理后的图像。

实例:

	# 自适应阈值处理
    thresh2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)
    # 保存结果
    cv2.imread('D:\Word\keli_thres2.jpg', 0)
    # 显示结果
    cv2.imshow('thresh2', thresh2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

在这里插入图片描述
这里的效果很满意

三、Otsu’s二值化

Otsu’s 二值化是一种自动确定阈值的方法。它通过最大化类间方差来找到最佳的全局阈值,适用于双峰图像(即图像直方图有两个明显的峰值)。

函数原型
retval, dst = cv2.threshold(src, thresh, maxval, type)
参数说明

src: 输入图像,通常为灰度图像。
thresh: 由于 Otsu’s 方法会自动确定阈值,因此该参数通常设置为 0。
maxval:当像素值超过(或小于,根据类型)阈值时,赋予的新值。
type: 阈值处理的类型,通常为 cv2.THRESH_BINARY 或cv2.THRESH_BINARY_INV,并加上 cv2.THRESH_OTSU。
返回值 retval: 自动确定的阈值。
dst:处理后的图像。

在这里插入图片描述
这个效果也不错哎~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值