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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tomcat部署war包 接口404 网页能访问「建议收藏」

    tomcat部署war包 接口404 网页能访问「建议收藏」后端新手部署项目被自己坑哭了。访问网页都知道加一个打包的war包名字,访问接口的时候没有加。http://xxx.xxx.xxx/项目名/页面路径页面基地址http://xxx.xxx.xxx/shop/例:http://xxx.xxx.xxx/shop/index.jsp接口基地址:http://xxx.xxx.xxx/shop例:http://xxx.xxx.xxx/shop/goods/getAllGoods…

    2022年6月1日
    33
  • activity生命周期有几种状态_activity生命周期七种方法

    activity生命周期有几种状态_activity生命周期七种方法activity生命周期(这篇足够了)摘要做安卓开发已经4年多了,所接触的知识点也比较零散,在这里记录一下android方面的知识点,方便自己以后复习,有什么不足的,以及错误的欢迎拍砖。activityactivity从开始到结束的四个状态。activity的生命周期。activity的进程优先级。activity的四个状态关于activity的…

    2022年8月16日
    4
  • css里的clear_css取消某个样式

    css里的clear_css取消某个样式clear:both清除两边,没有用的clear:left清除左边,没有用的clear:right清除右边,没用的

    2025年10月29日
    1
  • 本地Web服务器搭建[通俗易懂]

    本地Web服务器搭建[通俗易懂]1.Dreamweaver->新建站点->站点名称+本地站点文件夹->保存2.IE->Internet选项->安全标签->自定义级别(安全设置对话框)->启用“通过域访问数据源”->确定3.将webs.exe(WebServer)放至脚本根目录上一级目录,运行webs.exe4.启动浏览器输入IP地址:127.0.0.1即可访问本地的We

    2022年5月27日
    51
  • linux启动sh文件命令,Linux 运行 .sh 文件的两种方法「建议收藏」

    linux启动sh文件命令,Linux 运行 .sh 文件的两种方法「建议收藏」Linux运行.sh文件的两种方法文章作者:网友投稿 发布时间:2010-06-1513:31:16 来源:网络一个中等水平的Linux用户一定少不了经常执行.sh文件,当然了,你可以在图形界面下面直接双击该文件,但无疑比较浪费时间。现在介绍第一种方法:(在ubuntu下的)首先你要打开一个终端。然后输入sudosu随后输入密码。这样就取得了root用户权限。然后找到那个文件(…

    2025年7月7日
    2
  • 深入理解HandlerThread

    深入理解HandlerThread以往遇到HandlerThread,对它的认识只是停留在MessageLooperHandler上,知道它有自己的消息队列,仅此而已。随着编程的深入,个人已不再满足表面上的理解,所以再次翻开HandlerThread源码,做梳理记录。HandlerThread集成Thread,并重写了Thread类的run方法(如果我们自定义一个类继承HandlerThread,就用不到run函数了):

    2022年7月12日
    21

发表回复

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

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