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

#ret:暂时就认为是设定的thresh阈值,mask:二值化的图像

ret,mask = cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)

plt.imshow(mask,cmap='gray')

上面代码的作用是,将灰度图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

他们的作用参见下表:

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

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

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

cv2.THRESH_OTSU参数用法如下:

opencv 二值化 python_opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用...相关推荐

  1. opencv 二值化 matlab,opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH...

    cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下: #ret:暂时就认为是设定的thresh阈值,mask:二值化的图像 ret,mask = cv2.threshold(i ...

  2. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理

    [OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...

  3. opencv二值化的cv2.threshold函数

    (一)简单阈值 简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了.函数为cv2.threshold() 这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个 ...

  4. 图像阈值处理cv2.threshold()函数(python)

    内容 cv2.threshold()函数:在opencv中比较常用,但一开始不是很理解是什么意思. 下面是官方文档中给的解释 Python: cv2.threshold(src, thresh, ma ...

  5. opencv python cv2.threshold()函数报错 TypeError: Expected cv::UMat for argument 'mat'

    错误信息: 解决办法: 原来cv2.threshold()函数有俩返回值,我这只用了一个接收... 改成俩就好了: 参考文章1:图像阈值处理cv2.threshold()函数(python) 参考文章 ...

  6. 互斥量、条件变量与pthread_cond_wait()函数的使用,详解(二)

    互斥量.条件变量与pthread_cond_wait()函数的使用,详解(二) 1.Linux"线程" 进程与线程之间是有区别的,不过linux内核只提供了轻量进程的支持,未实现线 ...

  7. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  8. python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解

    #!/usr/bin/python3 # -*- coding:UTF-8 -*- import smtplib #smtplib库主要用来连接第三方smtp库,用来发邮件 from email.mi ...

  9. python数组相减_对Python 中矩阵或者数组相减的法则详解

    对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...

最新文章

  1. blackberry Jvm error 104 错误(Device Simulator)
  2. MJExtension 模型嵌套模型数组
  3. linux命令之查看程序动态库依赖-ldd
  4. 中科院合肥科学技术学校05计算机,硕士研究生课程设置-中国科学院合肥物质科学研究院.PDF...
  5. 比 Redis 快 5 倍的中间件,KeyDB
  6. mysql 数据库 安全_如何确保您MySQL数据库安全
  7. java编译器代码检查_Java编译器可以优化此代码吗?
  8. [*转*] 开发B2C电子商务系统(ASP.NET)--多年前的老文章
  9. 漫步数学分析三十八——反函数定理
  10. typedef有什么用_我是怎么用C++恰饭吃的
  11. MySQL服务器地址为空,C++/MySQL - 通过主机地址访问数据库时'未知的MySQL服务器主机';没有IP...
  12. 从零开始刷Leetcode——数组(66.88)
  13. unity 随机数_Unity 雨水滴到屏幕效果
  14. 试用 P、V操作描述下列理发师和顾客之间的同步问题
  15. (转载)应用层协议和传输层协议的关系
  16. TCSVT论文结构整理
  17. MYSQL统计收益排名
  18. 【行业了解】天眼查、企查查、启信宝、爱企查
  19. composer安装fxp/composer-asset-plugin
  20. 茶叶文化网站设计与实现 HTML+CSS学生网页设计作业源码

热门文章

  1. Battery Historian2.0 windows下安装
  2. [宋史学习] 满城、瓦桥关之战
  3. SQL 数据库完整性
  4. 企业网站产品页面优化技巧
  5. u盘文件打不开了如何恢复
  6. POP链实例解析学习
  7. Calcite RBO简介
  8. java io流拒绝访问_JAVA IO流 - 张宏良的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 老公的忏悔(看了笑S你)
  10. 【彩彩只能变身队】第七次会议