1. ret, dst = cv2.thresh(src, thresh, maxval, type)

参数说明, src表示输入的图片, thresh表示阈值, maxval表示最大值, type表示阈值的类型

2. type的类型

1.cv2.THRESH_BINARY   表示阈值的二值化操作,大于阈值使用maxval表示,小于阈值使用0表示

2. cv2.THRESH_BINARY_INV  表示阈值的二值化翻转操作,大于阈值的使用0表示,小于阈值的使用最大值表示

3. cv2.THRESH_TRUNC    表示进行截断操作,大于阈值的使用阈值表示,小于阈值的不变

4. cv2.THRESH_TOZERO   表示进行化零操作,大于阈值的不变,小于阈值的使用0表示

5. cv2.THRESH_TOZERO_INV  表示进行化零操作的翻转,大于阈值的使用0表示,小于阈值的不变

代码:

import cv2
import matplotlib.pyplot as plt img = cv2.imread('cat.jpg') # 1.进行阈值二值化操作,大于阈值127的,使用255表示, 小于阈值127的,使用0表示
ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

# 2. 进行阈值二值化翻转操作, 大于阈值127的,使用0表示,小于阈值127的,使用255表示
ret, thresh2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)

# 3. 进行截断阈值表示,大于阈值127的使用127表示,小于阈值127的不变
ret, thresh3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC)

# 4. 对阈值进行0值化表示,大于127的不变,小于127阈值的,用0表示
ret, thresh4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO)

# 5. 对阈值进行0值化反向操作, 大于127的用0表示,小于127的不变
ret, thresh5 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV)

images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
titles = ['ORIGINAL', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV'] for i in range(6):
plt.subplot(2, 3, i+1)
plt.imshow(images[i])
plt.title(titles[i])
plt.show()

机器学习进阶-阈值与平滑-图像阈值 1. cv2.threshold(进行阈值计算) 2. 参数type cv2.THRESH_BINARY(表示进行二值化阈值计算)的更多相关文章

  1. OpenCV_基于局部自适应阈值的图像二值化

    在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理.文本图片和验证码图片中字符的提取.车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等. 较为常用的图像二值化方 ...

  2. 图像处理------基于Otsu阈值二值化

    一:基本原理 该方法是图像二值化处理常见方法之一,在Matlab与OpenCV中均有实现. Otsu Threshing方法是一种基于寻找合适阈值实现二值化的方法,其最重 要的部分是寻找图像二值化阈值 ...

  3. 【转】Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化

    局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...

  4. [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化

    局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...

  5. openCV_java 图像二值化

    较为常用的图像二值化方法有:1)全局固定阈值:2)局部自适应阈值:3)OTSU等. 局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值.这样做的好处在于每个像素位置处的二值化 ...

  6. 深度学习实践-强化学习-bird游戏 1.np.stack(表示进行拼接操作) 2.cv2.resize(进行图像的压缩操作) 3.cv2.cvtColor(进行图片颜色的转换) 4.cv2.threshold(进行图片的二值化操作) 5.random.sample(样本的随机抽取)

    1. np.stack((x_t, x_t, x_t, x_t), axis=2)  将图片进行串接的操作,使得图片的维度为[80, 80, 4] 参数说明: (x_t, x_t, x_t, x_t) ...

  7. OpenCV图像的全局阈值二值化函数(OTSU)

    cv::threshold(GrayImg, Bw, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);//灰度图像二值化 CV_THRESH_OTSU是提取图像最 ...

  8. python-opencv 图像二值化,自适应阈值处理

    定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果. 一幅图像包括目标物体.背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用 ...

  9. [python-opencv]图像二值化【图像阈值】

    图像二值化[图像阈值]简介: 如果灰度图像的像素值大于阈值,则为其分配一个值(可以是白色255),否则为其分配另一个值(可以是黑色0) 图像二值化就是将灰度图像上的像素值设置为0或255,也就是将整个 ...

随机推荐

  1. 《Kubernetes权威指南》笔记-Pod、容器与Node的关系

  2. spring4.0之一:简介

    我们共同来构建更好的企业应用.Spring帮助全世界的开发团队构建简单.便携.快速和灵活的基于JVM的系统和应用.这两句话已经足以说明Spring的目标,它针对的领域是企业应用,这套框架构建的应用有着 ...

  3. jquery 点击元素以外任意地方隐藏该元素的方法

    文章来源:百度知道 我的思路是给body绑定一个click事件,然后判断当前鼠标点击的区域是当前元素还是元素以外区域,如果点击对象不是当前元素,则隐藏该元素. 假设对象的id为divBtn,则代码如下 ...

  4. 手动向Maven本地仓库添加ORACLE jdbc驱动

    一,当在maven工程中我们需要连接数据库的时候,只需要配置它的依赖就行,但是Maven不提供Oracle JDBC driver,由于Oracle授权问题它并没有提供,需要自己手动添加. 二,获取连 ...

  5. LEGB

    找寻变量的调用顺序采用LEGB原则(即就近原则) B —— Builtin(Python):Python内置模块的命名空间 (内建作用域) (内置命名空间) G —— Global(module): ...

  6. U3D学习10——关节和射线检测

    1.弹簧  2.铰链  3.固定关节  4.角色关节  5.自定义关节  6.raycast和raycasthit 射线有位移参数,可以设定只触发某一层的. 7.射线检测用于高速和精确 update是 ...

  7. Android重打包+重新签名工具Apktool Box

    可实现apk反编译+重新打包+重新签名,界面如下 : 部分引用自开源代码:http://github.com/Bu4275/AutoAPKTool

  8. 解决最近vs2017总是在加载工程的时候卡住不不动

    就像这样 解决方法 删除工程目录下的.vs目录

  9. DB通用类:Sqlite通用类库

    Sqlite通用类库 using System; using System.Collections; using System.Collections.Generic; using System.IO ...

  10. javaweb项目中遇到的一些乱码问题

    在做javaweb项目时,我们经常会遇到一些乱码问题: 首先,确定一点思想:要想不乱码,你要保证编码一致就行了,即统一编码~ 其一,jsp等页面中的中文显示乱码(这里不只是说jsp文件,其它文件也有这 ...