04-图像的阈值操作
对图像的阈值操作
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-图像的阈值操作相关推荐
- C/C++ OpenCV图像的阈值操作
固定阈值操作:Threshold() double threshold( inputArray src, outPutArray dst, double thresh, double maxval, ...
- OpenCV 【十九】图像金字塔/基本的阈值操作/实现自己的线性滤波器
目录 1.part one 图像金字塔 1.1原理 1.1.1图像金字塔 1.1.2高斯金字塔 1.2代码 1.3运行结果 2.part two 基本的阈值操作¶ 2.1原理 2.1.1阈值化的类型: ...
- OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作
图像平滑处理 目标 本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下: blur GaussianBlur medianBlur bilateralFilter 原理 No ...
- OpenCV3学习(4.1)——图像阈值操作(Threshold,AdaptiveThreshold)
阈值分割的作用 阈值分割其实就是图像分离,对于阈值内的你想如何操作,一个最简单的例子就是二值图像. 所謂的二值化是將影像進行區分,分成我們感興趣的部分(前景),以及不感興趣的部分(背景),通常將某個 ...
- 图像二值化处理(全局阈值 自适应阈值 手动阈值操作以及直方图画法)
文章目录 图像二值化处理 二值化原理 API介绍 手动设置阈值 均值法 迭代法 自动设置阈值 直方图法 全局阈值法 OTSU法 三角形法 自适应阈值法 API 绘制图像直方图 图像二值化处理 二值化原 ...
- OpenCV基本的阈值操作
目的: 使用OpenCV 中的函数cv::threshold实现阈值操作 理论: 阈值? 1) 最简单的分割方法 2) 应用实例:从图像中分割出我们要分析的对象区域.这种分离基于对象的像素和背景像素之 ...
- OpenCV中阈值操作
阈值分割,顾名思义,就是对图像的像素点和选中的阈值进行比对的图像分割方法,在OpenCV 2.X中,Threshold()函数(基本阈值操作)和adaptiveThreshold()函数(自适应阈值操 ...
- Python对DICOM图像进行阈值分割
Python对Dicom图像进行处理,离不开pydicom,opencv-python,matplotlib,numpy四个代码库,安装完成这四个代码库后, 可以读取Dicom图像,并对图像进行处理, ...
- 二值图像分析:OpenCV中的二值化阈值操作
二值图像分析:OpenCV中的二值化阈值操作 1.二值图像的定义 2.OpenCV中的基本阈值操作 3.OTSU二值寻找算法 3.1 OTSU二值寻找算法介绍 3.2 OTSU二值寻找算法分析 3.2 ...
最新文章
- 记录EasyUI使用中的问题和解决的方法
- Python之pandas读取Excel表格空值为nan的处理
- 计算机网络部分(共44题),2018年10月自考04741计算机网络原理试卷及答案
- Attempt to present vc on vc which is already presenting vc/(null)
- .NET Core:面向未来的开源跨平台开发技术
- matlab里有java数据库吗_Matlab通过JDBC建立到Oracle数据库的连接
- ERROR 1064 (42000): You have an error in your SQL syntax
- 系统学习NLP(十五)--seq2seq
- Java生成桌面快捷方式(字节流生成)
- 16数码管静态显示(74hc_595)
- html5轮播怎么自动换图,如何使用JavaScript实现“无缝滚动 自动播放”轮播图效果...
- 如何控制苹果Mac电池健康管理功能?
- C/C++中的atan和atan2函数
- 卡夫卡详解_卡夫卡概念
- javascript开源电子表格
- php 打开文件方式
- ckeditor 工具栏配置
- eBPF学习仓库bpf_study-996station GitHub鉴赏官
- matlab中发现一特么别好用的画三维图函数ezmesh()
- php 抽象方法的特点,PHP抽象类简介 - 技术缘的个人空间 - OSCHINA - 中文开源技术交流社区...