对图像的阈值操作

import cv2
import matplotlib.pyplot as pltimg = cv2.imread('E:/Jupyter_workspace/study/data/cat.png',1)
ret, thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
ret, thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
ret, thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
ret, thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
ret, thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']
images = [img,thresh1,thresh2,thresh3,thresh4,thresh5]for i in range(6):plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')#这里的(2,3,i+1)表示两行三列来显示这六种照片,i+1表示每个照片的位置plt.title(titles[i])plt.xticks([]),plt.yticks([])plt.show()

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

ret:阈值
dst:输出图

src:输入图,只能输入单通道图像,通常来说为灰度图
thresh:阈值,为一个常见的数值,通常设置为127,因为取值范围是[0,255]
maxval:当像素值超过了阈值(或小于阈值,根据type来决定),所赋予的值,一般为255
type:二值化操作的类型,包含以下五种类型

类型名称 类型功能 解析 例子
cv2.THRESH_BINARY 超过阈值的部分取maxval(最大值),否则取0 大于thresh的值取maxval 越亮取maxval,较暗取为0黑——亮变白,暗变0黑
cv2.THRESH_BINARY_INV 不超过阈值的部分取maxval(最大值),否则取0 THRESH_BINARY的反转方法 小于thresh的值取maxval——暗变白,亮变0黑
cv2.THRESH_TRUNC 大于阈值部分设置为阈值,否则不变 最大的最亮的也只能是thresh阈值 亮的地方变thresh阈值,暗的地方不变
cv2.THRESH_TOZERO 大于阈值部分不变,否则设为0 大于阈值的不变,小于等于阈值的为0 亮的地方不变,暗的地方变0黑
cv2.THRESH_TOZERO_INV 小于阈值部分不变,否则设为0 小于等于阈值的不变,大于阈值的为0 暗的不变,亮的变0暗

04-图像的阈值操作相关推荐

  1. C/C++ OpenCV图像的阈值操作

    固定阈值操作:Threshold() double threshold( inputArray src, outPutArray dst, double thresh, double maxval, ...

  2. OpenCV 【十九】图像金字塔/基本的阈值操作/实现自己的线性滤波器

    目录 1.part one 图像金字塔 1.1原理 1.1.1图像金字塔 1.1.2高斯金字塔 1.2代码 1.3运行结果 2.part two 基本的阈值操作¶ 2.1原理 2.1.1阈值化的类型: ...

  3. OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作

    图像平滑处理 目标 本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下: blur GaussianBlur medianBlur bilateralFilter 原理 No ...

  4. OpenCV3学习(4.1)——图像阈值操作(Threshold,AdaptiveThreshold)

    阈值分割的作用  阈值分割其实就是图像分离,对于阈值内的你想如何操作,一个最简单的例子就是二值图像. 所謂的二值化是將影像進行區分,分成我們感興趣的部分(前景),以及不感興趣的部分(背景),通常將某個 ...

  5. 图像二值化处理(全局阈值 自适应阈值 手动阈值操作以及直方图画法)

    文章目录 图像二值化处理 二值化原理 API介绍 手动设置阈值 均值法 迭代法 自动设置阈值 直方图法 全局阈值法 OTSU法 三角形法 自适应阈值法 API 绘制图像直方图 图像二值化处理 二值化原 ...

  6. OpenCV基本的阈值操作

    目的: 使用OpenCV 中的函数cv::threshold实现阈值操作 理论: 阈值? 1) 最简单的分割方法 2) 应用实例:从图像中分割出我们要分析的对象区域.这种分离基于对象的像素和背景像素之 ...

  7. OpenCV中阈值操作

    阈值分割,顾名思义,就是对图像的像素点和选中的阈值进行比对的图像分割方法,在OpenCV 2.X中,Threshold()函数(基本阈值操作)和adaptiveThreshold()函数(自适应阈值操 ...

  8. Python对DICOM图像进行阈值分割

    Python对Dicom图像进行处理,离不开pydicom,opencv-python,matplotlib,numpy四个代码库,安装完成这四个代码库后, 可以读取Dicom图像,并对图像进行处理, ...

  9. 二值图像分析:OpenCV中的二值化阈值操作

    二值图像分析:OpenCV中的二值化阈值操作 1.二值图像的定义 2.OpenCV中的基本阈值操作 3.OTSU二值寻找算法 3.1 OTSU二值寻找算法介绍 3.2 OTSU二值寻找算法分析 3.2 ...

最新文章

  1. 记录EasyUI使用中的问题和解决的方法
  2. Python之pandas读取Excel表格空值为nan的处理
  3. 计算机网络部分(共44题),2018年10月自考04741计算机网络原理试卷及答案
  4. Attempt to present vc on vc which is already presenting vc/(null)
  5. .NET Core:面向未来的开源跨平台开发技术
  6. matlab里有java数据库吗_Matlab通过JDBC建立到Oracle数据库的连接
  7. ERROR 1064 (42000): You have an error in your SQL syntax
  8. 系统学习NLP(十五)--seq2seq
  9. Java生成桌面快捷方式(字节流生成)
  10. 16数码管静态显示(74hc_595)
  11. html5轮播怎么自动换图,如何使用JavaScript实现“无缝滚动 自动播放”轮播图效果...
  12. 如何控制苹果Mac电池健康管理功能?
  13. C/C++中的atan和atan2函数
  14. 卡夫卡详解_卡夫卡概念
  15. javascript开源电子表格
  16. php 打开文件方式
  17. ckeditor 工具栏配置
  18. eBPF学习仓库bpf_study-996station GitHub鉴赏官
  19. matlab中发现一特么别好用的画三维图函数ezmesh()
  20. php 抽象方法的特点,PHP抽象类简介 - 技术缘的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. centos-7.2 node.js免编译安装
  2. iview给radio按钮组件加点击事件
  3. Django之管理权限
  4. Ajax与CustomErrors的尴尬
  5. android-verticalseekbar——Android可视化SeekBar类库
  6. MST:Bad Cowtractors(POJ 2377)
  7. Java12题:发奖金问题
  8. 玩转Win32开发(2):完整的开发流程
  9. Codeforces Round #277 (Div. 2) 题解
  10. Fedora 20 配置