图像处理函数im2bw详解
转自:https://www.cnblogs.com/lihuidashen/p/3432562.html
im2bw是基于转换为二值图像的算法,用的是otsu’s method.
matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种颜色的组合。 在matlab命令行中键入doc im2b或help im2bw即可获得该函数的帮助信息。
阈值变换
比如数组 a = [120, 254, 0, 200, 99];
设定一个阈值125, 并对a进行阈值变换, 那么a中凡是大于125的, 则变为255, 小于等于125的则变为0
(具体对临界情况处理可能不同, 不过matlab中im2bw函数是按照上述方法处理的)
这样a经过阈值变换后变为[0, 255, 0, 255, 0]
功能:
通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。
用法:
BW = im2bw(I,level)
将灰度图像 I 转换为二进制图像。输出图像 BW 将输入图像中亮度值大于 level 的像素替换为值1 (白色),其他替换为值0(黑色)。你指定 level 在 [0,1]之间,不用管输入图像的等级。函数graythresh 能用来自动计算变量 level 。如果你不指定 level ,im2bw 使用 0.5。
BW = im2bw(X,map,level)
将颜色表为 map 的索引图像 X 转换为二进制图像。
BW = im2bw(RGB,level)
将 RGB 真彩图像转换为二进制图像。Level是归一化的阈值,值域为[0,1]。Level可以由函数graythresh(I)来计算。
【如果输入图像不是灰度图像, im2bw 首先将图像转换为灰度图像,然后通过阈值将灰度图像转换成二进制图像。】
例子:load trees
BW = im2bw(X,map,0.4);
imview(X,map),imview(BW)
(拓展一下)各个函数的使用:
im2uint8:将输入转化为uint8,有效的输入图像数据类型包括logical, uint8, uint16, double
im2uint16:将输入转化为uint16,有效的输入图像数据类型包括同上
mat2gray:将输入转化为double,但是输出的double数据都在[0, 1]范围内,有效的输入只有double
im2double:如果输入的不是double类型图像,在输出都是在[0, 1]范围,如uint8则输出为uint8/255。但如果是double类型,则原样输出
im2bw:上面已经解释了,输出的是二值图像。
图像处理函数im2bw详解相关推荐
- 数字图像处理:OpenCV-Python中的直方图均衡知识介绍及函数equalizeHist详解
一.引言 在<数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍 >(链接:https://blog.csdn.net/LaoYuanPython/a ...
- matlab对图像操作函数的详解(笔记1)
matlab对图像操作函数的详解 一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.ti ...
- OpenCV-Python图像处理:仿射变换详解及案例
仿射变换博文传送门(带星号的为付费专栏文章): *图像仿射变换原理1:齐次坐标来龙去脉详解 *图像仿射变换原理2:矩阵变换.线性变换和图像线性变换矩阵 *图像仿射变换原理3:仿射变换类型及变换矩阵详解 ...
- mybatis接口中的方法重载_MyBatis的Mapper接口以及Example的实例函数及详解
一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserExample example) thorws SQLException ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- R语言tidyr包gather()函数实战详解:数据收缩、从宽表到窄表
R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 目录 R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 收缩两列数据
- R语言tidyr包spread()函数实战详解:数据裂变、从窄表到宽表
R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表 目录 R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表
- R语言tidyr包Unite()函数实战详解:多个数据列合并为一列
R语言tidyr包Unite()函数实战详解:多个数据列合并为一列 目录 R语言tidyr包Unite()函数实战详解:多个数据列合并为一列
- R语言tidyr包separate()函数实战详解:一列裂变为多列
R语言tidyr包separate()函数实战详解:一列裂变为多列 目录 R语言tidyr包separate()函数实战详解:一列裂变为多列 一列裂变为两列
最新文章
- keras 的 example 文件 addition_rnn.py 解析
- 软件工程系列教材:软件架构设计实践教程
- hadoop 运行java程序_Hadoop java 程序运行
- 富文本编辑器的配置使用
- 面试必会系列 - 1.1 Java SE 基础
- python进行数据查询_如何进行python数据库查询?(实例解析)
- 我们真正需要的目标(原名:制定目标你会吗?)
- 你认识的有钱人,是怎么起家的?是做什么生意的?
- qt qtableview插入进度条_Qt之QSqlTableModel的使用
- C# dataGridView选中一行右键出现菜单,对数据进行操作(datatable的操作)
- MySQL 数据库性能调优
- EXCEL VBA编程入门三:VBA开发环境认识
- c语言搜索算法伪代码,FFT算法伪代码
- LeetCode995.Minimum Number of K Consecutive Bit Flips(K 连续位的最小翻转次数 )
- 我的十余年职业生涯之路
- Mac上doc 转docx
- oracle通信通道的文件结尾_“ORA-03113: 通信通道的文件结尾”报错处理
- SQL --理解SQL SERVER中的逻辑读,预读和物理读
- php 元旦祝福,元旦祝福语大全简短 简短独特
- 我给文案新人的1点建议!
热门文章
- 微信增加“数字人民币”入口
- 内存访问顺序 - part2: 屏障及Linux kernel中屏障的使用
- 【招聘直通车】美团公交业务部交通事业部招聘啦!
- SiC肖特基的电流密度提高了50%,浪涌额定值也提高了50%
- ROS-RouterOS hAP ac2+usb 4G上网卡+小米新推的无线上网卡是绝配
- 中国十大“勾魂”美景-雪山
- PMP培训机构是不是实战培训?
- C++异常中的堆栈跟踪
- 时间序列分析之排列熵(Permutation Entropy)
- 关于iOS招聘面试的一些问题