OpenCV+Python图像处理入门教程(五)阈值处理

发布时间:2021-09-26 08:34:58

5.3 反二值化阈值处理(cv2.THRESH_BINARY_INV)


该方法表示:对于像素值大于阈值thresh的像素点,将其设置为0;对于像素值小于阈值thresh的像素点,将其设置为最大值。


使用函数cv2.threshold()对图像进行二值化阈值操作代码如下:


复制代码
1 import cv2
2 img=cv2.imread(‘E:python_opencv/tupian.jpg’)
3 t,rst=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) #类型设置为cv2.THRESH_BINARY_INV,阈值设置为127
4 cv2.imshow(‘img’,img)
5 cv2.imshow(‘rst’,rst)
6 cv2.waitKey()
7 cv2.destroyAllWindows()
复制代码
运行结果如下图,左为原图像,右为反二值化阈值处理结果。


5.4 截断阈值化处理(cv2.THRESH_TRUNC)


该方法表示:对于像素值大于阈值thresh的像素点,将其设置为阈值;对于像素值小于阈值thresh的像素点,保持不变。


使用函数cv2.threshold()对图像进行截断阈值化处理代码如下:


复制代码
1 import cv2
2 img=cv2.imread(‘E:python_opencv/tupian.jpg’)
3 t,rst=cv2.threshold(img,127,255,cv2.THRESH_TRUNC) #类型设置为cv2.THRESH_TRUNC,阈值设置为127
4 cv2.imshow(‘img’,img)
5 cv2.imshow(‘rst’,rst)
6 cv2.waitKey()
7 cv2.destroyAllWindows()
复制代码
运行结果如下图,左为原图像,右为截断阈值化处理结果。


5.5 超阈值零处理(cv2.THRESH_TOZERO_INV)


该方法表示:对于像素值大于阈值thresh的像素点,将其设置为0;对于像素值小于阈值thresh的像素点,保持不变。


使用函数cv2.threshold()对图像进行超阈值零处理代码如下:


复制代码
1 import cv2
2 img=cv2.imread(‘E:python_opencv/tupian.jpg’)
3 t,rst=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV) #类型设置为cv2.THRESH_TOZERO_INV,阈值设置为127
4 cv2.imshow(‘img’,img)
5 cv2.imshow(‘rst’,rst)
6 cv2.waitKey()
7 cv2.destroyAllWindows()
复制代码
运行结果如下图,左为原图像,右为超阈值零处理结果。


5.6 低阈值零处理(cv2.THRESH_TOZERO)


该方法表示:对于像素值小于或等于阈值thresh的像素点,将其设置为0;对于像素值大于阈值thresh的像素点,保持不变。


使用函数cv2.threshold()对图像进行低阈值零处理代码如下:


复制代码
1 import cv2
2 img=cv2.imread(‘E:python_opencv/tupian.jpg’)
3 t,rst=cv2.threshold(img,127,255,cv2.THRESH_TOZERO) #类型设置为cv2.THRESH_TOZERO,阈值设置为127
4 cv2.imshow(‘img’,img)
5 cv2.imshow(‘rst’,rst)
6 cv2.waitKey()
7 cv2.destroyAllWindows()
复制代码
运行结果如下图,左为原图像,右为低阈值零处理结果。


5.7 自适应阈值处理


一般情况下,图像中只是用一个阈值,就会造成轮廓与内容分割不均衡,无法得到清晰有效的阈值处理图像。


OpenCV中提供了cv2.adaptiveThreshold()函数用于实现自适应阈值处理。自适应阈值处理的原理,是通过计算每个像素点的邻域像素进行加权*均而获得阈值,能够较好地处理色彩不均衡的图像。


cv2.adaptiveThreshold()函数中,有两个参数类型:


cv2.ADAPTIVE_THRESH_MEAN_C 邻域内所有像素点的权重都相同


cv2.ADAPTIVE_THRESH_GAUSSIAN_C 通过高斯方程得到各个像素点的权重值,与邻域内像素点到中心的距离有关


使用二值化阈值函数cv2.threshold()对图像进行自适应阈值处理代码如下:


复制代码
1 import cv2
2 img=cv2.imread(‘E:python_opencv/tupian.jpg’,0)
3 #类型设置为cv2.ADAPTIVE_THRESH_MEAN_C,后面必须加cv2.THRESH_BINARY或cv2.THRESH_BINARY_INV,邻域大小设置为5×5,最后的3是常量
4 athdMEAN=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,5,3)
5 #类型设置为cv2.ADAPTIVE_THRESH_GAUSSIAN_C,后面必须加cv2.THRESH_BINARY或cv2.THRESH_BINARY_INV,邻域大小设置为5×5,最后的3是常量
6 athdGAUS=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,3)
7 cv2.imshow(‘img’,img)
8 cv2.imshow(‘athdMEAN’,athdMEAN)
9 cv2.imshow(‘athdGAUS’,athdGAUS)
10 cv2.waitKey()
11 cv2.destroyAllWindows()
复制代码
运行结果如下图,左为原图像,中为像素权*骄斫峁椅咚谷ㄖ刂荡斫峁?梢钥吹剑允视︺兄荡肀A袅烁嗟南附谛畔ⅰ


5.8 Otsu方法(cv2.THRESH_OTSU)


Otsu方法能够根据当前图像生成最佳的类间分割阈值,原理是遍历所有可能的阈值,从而找到最合适的阈值。


通过函数cv2.threshold()中传递类型参数:cv2.THRESH_OTSU,来实现Otsu算法。


需要注意的是,在使用Otsu方法时,要把阈值设置为0,语句为:


t是Otsu方法得到并使用的最合适阈值,参数中阈值设置为0,传递两种类型

t,otsu=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
使用Otsu方法对图像进行自适应阈值处理代码如下:


复制代码
1 import cv2
2 img=cv2.imread(‘E:python_opencv/tupian.jpg’,0)
3 #类型设置为cv2.THRESH_BINARY+cv2.THRESH_OTSU,阈值设置为0
4 t,otsu=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
5 cv2.imshow(‘img’,img)
6 cv2.imshow(‘otsu’,otsu)
7 cv2.waitKey()
8 cv2.destroyAllWindows()
USB Microphone https://www.soft-voice.com/

相关文档

  • 天然气充值卡丢失怎么办
  • linux设备驱动--等待队列实现
  • 老中医治甲亢药方
  • 学校资产管理制度范本
  • 配置Eclipse环境变量
  • 二分法求数组最大最小_百度面试题:求数组最大值
  • 做运维前 vs 做运维后,太形象了!
  • C++高阶函数
  • 出师表原文带翻译
  • 下雪日记怎么写
  • SQL必知必会 - 学习心得(一)
  • 小学数学五年级上册工作计划
  • glog 设置日志级别_如何动态改变日志级别
  • 如何写学生的介绍信
  • 成都社保查询个人账户
  • 为什么使用开源软件_为什么要使用开源软件?
  • 《昆虫记》读书笔记_昆虫读书笔记1500字 - 读书笔记
  • 家乡的太阳山
  • 元宵节是情人节吗?元宵节是中国情人节吗?
  • 财务管理部门
  • 2020年学校校长述廉总结报告
  • 斐波那契数列前20项
  • 口口声声造句
  • 年度个人工作总结的范文
  • 拼多多通过通讯录加你是怎么回事
  • 社区工作者考试复习题
  • 韩国留学奖学金类型和要求
  • 颈纹是由什么原因引起的
  • 红花的功效与作用洗脚
  • 室内设计装修效果图 店面装修室内设计图
  • 猜你喜欢

  • win10 32位系统支持多大内存
  • 北京李宁体育用品有限公司人力资源管理咨询项目PPT资料70页
  • 人教版2019年春语文六下全册备课素材中国五大特色民居建筑
  • 忻州华山农村数字电影院线有限公司企业信用报告-天眼查
  • 属虎和属蛇的婚姻怎么样
  • 中考历史复习第1轮单元过关夯实基础模块2中国近代史第4单元中华民族的抗日战争精讲课件
  • 食品的用消毒剂
  • 有关感恩老师的朗诵文艺
  • 2019年小学生读后感范文:水浒传之智取生辰纲读后感_小学作文
  • 长细比对轴压角钢承载力影响的数值分析
  • 安徽省物价局、财政厅关于核定“学苑大厦”收费标准的函
  • 精选部编版七下语文精品状元教案:12 卖油翁(含五套下学期期末试卷)
  • 销售人员薪酬待遇方案
  • 《幼儿教育》-幼儿园托班社会教案:新年到精选
  • 机会成本及其在应收账款管理中的应用
  • 【高考训练5年真题2014】考点19 写作
  • 人教版一年级上册数学期末试卷附答案-(1)汇编
  • 想装个双系统怎么设置BIOS
  • 中专医学毕业生的自我鉴定范文
  • 2018-2019学年最新沪科版九年级数学上学期第一次六校联考检测试题及答案解析-精编试题
  • 红米note4和4x外观图
  • 五年级上第九册语文教学计划
  • 【部编】人教版七年级上册(2016)第四单元第16课《诫子书》精品教案
  • 2019-2020年公务员考试备考行测《定义判断》考前复习题含答案解析(四十三)[重庆]
  • 数字视频处理课件2325共91页文档
  • 山西省2019届高三3月考前适应性测试文综历史试题(解析版)
  • 嘉善县大地污水处理工程有限公司(企业信用报告)- 天眼查
  • 教师个人的自我介绍
  • 【推荐下载】android opengl es实例画三角形
  • 生物:5.5《生态系统的稳定性》课件(新人教版必修3)湖南师大-17页PPT资料
  • 雨中即景作文700字
  • 员工试用期满考核登记表
  • 经济与城市管理学院培养方案电子稿
  • 原子弹爆炸时巨大的能量以冲击波形式向四周传播
  • 2019年办公室秘书人员个人工作计划
  • 现在学好C4D有发展吗?能做什么工作?
  • 【新人教部编版】2019年小学二年级语文上册课文27妈妈睡了教学课件
  • 细水长流随笔感想
  • 2002—2009年北京高考文言文阅读题与解析汇编
  • OpenCV识别印刷体数字
  • 山东缘道商贸有限公司企业信用报告-天眼查
  • 库存控制提升计划
  • 电脑版