Opencv+Python笔记(五)图像阈值化处理

这篇具有很好参考价值的文章主要介绍了Opencv+Python笔记(五)图像阈值化处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

图像阈值化可以理解为一个简单的图像分割操作,阈值又称为临界值,它的目的是确定出一个范围,然后这个范围内的像素点使用同一种方法处理,而阈值之外的部分则使用另一种处理方法或保持原样。
阈值处理有2种方式,一种是固定阈值方式,又包括多种处理模式,另一种是非固定阈值,由程序根据算法以及给出的最大阈值计算图像合适的阈值,再用这个阈值进行二值化处理

1.固定阈值方式(threshold)

Opencv API:

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

输入:1.src:输入的图像(只能为单通道图像,例如灰度图);2.thresh:阈值。通过阈值水平的像素被接受,不通过的则不接受,阈值判断时,是以小于等于阈值和大于阈值作为分界条件;3.maxVal:maxval是阈值化后的最大值;4.type:二值化操作的类型,包含以下5种类型
函数返回值:ret表示实际使用的阈值即threshold,dst表示输出图像

Opencv+Python笔记(五)图像阈值化处理

类型 说明
cv2.THRESH_BINARY 超过阈值部分取maxval(最大值),否则取0
cv2.THRESH_BINARY_INV 不超过阈值的像素设置为maxVal,超过的设置为0 上一种的反转
cv2.THRESH_TRUNC 大于阈值部分设为阈值,否则不变 trunc截断 即用阈值来截断
cv2.THRESH_TOZERO 小于或等于阀值的设为0,其余部分不变
cv2.THRESH_TOZERO_INV THRESH_TOZERO的反转

2.自适应阈值方式(adaptiveThreshold)

根据图像上的每一个小区域,计算与其对应的阈值,从而使得同一幅图像上的不同区域采用不同的阈值,在亮度不同的情况下得到更好的结果。该函数用来对灰度图应用自适应阈值,取决于传递给它的自适应方法。需要传递几个参数,包括最大阈值,块大小(可以是3、5、7等)以及一个将从计算得到的块均值中减去的常量值,该值可以为0。

Opencv API:

dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)

src: 需要处理的源图像。
maxValue: 当像素值超过阈值时,所赋的最大值。
adaptiveMethod: 自适应阈值算法的类型,目前支持ADAPTIVE_THRESH_MEAN_C 和 ADAPTIVE_THRESH_GAUSSIAN_C两种类型。
thresholdType: 阈值的类型,目前支持THRESH_BINARY 和 THRESH_BINARY_INV两种类型。
blockSize: 自适应阈值算法使用的块大小,必须是一个奇数。
C: 从均值或加权均值中减去的常量,用于调节阈值。文章来源地址https://www.toymoban.com/news/detail-425483.html

到了这里,关于Opencv+Python笔记(五)图像阈值化处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包