opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」通常情况,我们一般不知道设定怎样的阈值thresh才能得到比较好的二值化效果,只能去试。如对于一幅双峰图像(理解为图像直方图中存在两个峰),我们指定的阈值应尽量在两个峰之间的峰谷#ret:暂时就认为是设定的thresh阈值,mask:二值化的图像ret,mask=cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)plt.imshow(mask,cmap=’gray’)上面代码的作用是,将灰度图img2gray中灰度值小于175的点置…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

我的小程序:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」
待办计划:给自己立个小目标吧!

cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下:

#ret:暂时就认为是设定的thresh阈值,mask:二值化的图像
ret,mask = cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)
plt.imshow(mask,cmap='gray')

Jetbrains全家桶1年46,售后保障稳定

上面代码的作用是,将灰度图img2gray中灰度值小于175的点置0,灰度值大于175的点置255

具体用法如下:

threshold(src, thresh, maxval, type[, dst])->ret,dst

src::灰度图

thresh:阈值

maxval:最大值

type:阈值类型

对于最后一个参数,常见的阈值类型有:

THRESH_BINARY=0,THRESH_BINARY_INV,THRESH_TRUNC,THRESH_TOZERO,THRESH_TOZERO_INV,THRESH_OTSU,THRESH_TRIANGLE,THRESH_MASK

他们的作用参见下表:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

threshold函数有两个返回值,其中第二个返回值(这里是mask)是二值化后的灰度图。当我们指定了阈值参数thresh,第一个返回值ret就是我们指定的thresh。换句话说,我们可以不指定阈值参数thresh。

通常情况,我们一般不知道设定怎样的阈值thresh才能得到比较好的二值化效果,只能去试。如对于一幅双峰图像(理解为图像直方图中存在两个峰),我们指定的阈值应尽量在两个峰之间的峰谷。这时,就可以用第四个参数THRESH_OTSU,它对一幅双峰图像自动根据其直方图计算出合适的阈值(对于非双峰图,这种方法得到的结果可能不理想)。

对于双峰图,我们需要多传入一个参数cv2.THRESH_OTSU,并且把阈值thresh设为0,算法会找到最优阈值,并作为第一个返回值ret返回。

cv2.THRESH_OTSU参数用法如下:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

效果如下:

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」

我的小程序: 

opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用「建议收藏」
待办计划:给自己立个小目标吧!

参考资料:《OpenCV-Python 中文教程》段力辉 译

参考博文:

图像处理之直方图处理

opencv: 阈值处理(cv2.threshold) 探究(图示+源码) 

OpenCV基础——threshold函数的使用

相关博文:opencv-python自适应阈值二值化函数cv2.adaptiveThreshold使用及效果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210132.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • NavicatPremium15 激活码(JetBrains全家桶)

    (NavicatPremium15 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日
    111
  • 贴片铝电容识别及型号_2.贴片电容和贴片铝电解的封装材质型号大全

    贴片铝电容识别及型号_2.贴片电容和贴片铝电解的封装材质型号大全1.贴片电容的封装及容值表示多层片式陶瓷电容器(MLCC)贴片电容封装贴片电容由于制造时受“高温烧结”工艺限制,所以本体上不能标注其容量,一般都是在贴片生产的整盘上有标注。容量识别:104=10×10^4PF=100000PF=100NF=0.1UF471=47×10^1PF=470PF原则1:以PF为基本单位,1法拉(F)=1000毫法(mF)=1000000微法(μF)1微法(μF)=…

    2022年8月21日
    11
  • python精彩编程200例 pdf-Python程序设计 第3版pdf「建议收藏」

    Python程序设计第3版内容简介《Python程序设计第3版》是面向大学计算机科学专业的教材。本书以Python语言为工具,采用相当传统的方法,强调解决问题、设计和编程是计算机科学的核心技能。全书共13章,此外,还包含两个附录。第1章到第5章介绍计算机与程序、编写简单程序、数字计算、对象和图形、字符串处理等基础知识。第6章到第8章介绍函数、判断结构、循环结构和布尔值等话题。第9章到第1…

    2022年4月6日
    117
  • redis被击穿_redis的击穿和雪崩

    redis被击穿_redis的击穿和雪崩Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,…

    2025年11月13日
    4
  • kong网关架构_kong网关性能

    kong网关架构_kong网关性能Kong是一个使用了lua-nginx-module运行在Nginx之上的Lua应用。Kong是一个成熟的API网关解决方案。API网关,即APIGateway,是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能、高可用的API托管服务,从而帮助服务的开发者便捷地对外提供服务,而不用考虑安全控制、流量控制、审计日志等问题,统一在网关层将安全认证,流量控制,审计日志,黑白名单…

    2025年10月24日
    4
  • MyEclipse或Eclipse按住ctrl点击方法,提示Problems finding implementations或无法跳转的问题解决[通俗易懂]

    MyEclipse或Eclipse按住ctrl点击方法,提示Problems finding implementations或无法跳转的问题解决[通俗易懂]MyEclipse或Eclipse按住ctrl点击方法,提示Problems finding implementations或无法跳转的问题解决

    2022年4月23日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号