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)
上一篇 2025年7月27日 下午12:15
下一篇 2025年7月27日 下午12:43


相关推荐

  • Pycharm连接数据库

    Pycharm连接数据库我们一般通过终端连接数据库 其实也可以通过 pycharm 连接数据库 pycharm 最右侧找到 Database 然后操作如下然后做如下配置 第一次需要下载 Driver 驱动 连接上去之后的效果接下来 在 pycharm 中打开执行 sql 的命令行窗口 然后创建数据库 创建之后的结果 如果没有出现 点击刷新按钮 创建模型 amp 添加测试数据创建模型 添加测试数据 运

    2026年3月20日
    2
  • Python散点图绘制(用seaborn绘制散点图)

    今天下午学习了如何使用python绘制简单的散点图,写成博客分享一下。在python中画散点图主要是用matplotlib模块中的scatter函数,先来看一下scatter函数的基本信息。网址为:点击打开链接可以看到scatter中有很多参数,经常使用的参数主要有以下几个:c:marker:数据、代码和绘制的图如下。数据(取第一列作为x,取第四列作为y)截图:代码如下…

    2022年4月13日
    147
  • OpenClaw 一键部署

    OpenClaw 一键部署

    2026年3月13日
    3
  • kali 国内源 与 apt-get update 报错-GPG error的解决方案[通俗易懂]

    kali 国内源 与 apt-get update 报错-GPG error的解决方案[通俗易懂]#中科大debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontrib#浙大debhttp://mirrors.zju.edu.cn/kalikali-rol…

    2022年10月13日
    10
  • Android Studio安装教程(超级详细)「建议收藏」

    Android Studio安装教程(超级详细)「建议收藏」AndroidStudio安装教程(超级详细)欢迎使用Markdown编辑器获取AndroidStudio安装AndroidStudio欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。获取AndroidStudio安装前提(系统安装了jdk,并且版本在1.8以上)官网下载AndroidDevTools下载AndroidStudio

    2022年7月15日
    17
  • Cursor AI编辑器进阶技巧

    Cursor AI编辑器进阶技巧

    2026年3月14日
    1

发表回复

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

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