图像处理函数详解——im2bw

简介:   im2bw是基于转换为二值图像的算法,用的是otsu's method.   matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。

  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:上面已经解释了,输出的是二值图像。

 

相关文章
|
Ubuntu 网络安全 数据安全/隐私保护
使用MobaXterm ssh远程登录Ubuntu 20.04
接着等待安装完成。 再次输入ifconfig,可以看到我们的ip是192.168.197.139。
2090 0
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
8月前
|
人工智能 自然语言处理 搜索推荐
《深度剖析:开源与闭源模型,AI舞台上的不同角色》
在人工智能领域,开源与闭源模型各有优劣。闭源模型由大公司精心打造,初始性能优越,但优化受限;开源模型则依靠社区力量,灵活性高、迭代迅速,长期潜力大。在学术研究中,开源模型透明性高,利于创新;商业应用上,闭源模型稳定性强,适合高要求场景。资源受限环境中,开源模型更易裁剪优化。企业和开发者应根据需求选择合适模型,两者共同推动AI发展。
916 9
|
7月前
|
PHP iOS开发 MacOS
CCS(Code Composer Studio 10.4.0)编译软件中文乱码怎么解决
通过合理配置CCS和操作系统,可以确保中文字符在开发过程中能够正确显示,避免由于乱码问题带来的困扰。希望本文能帮助您更好地使用CCS进行嵌入式开发。
1196 19
|
11月前
|
监控 虚拟化 Docker
Window系统安装Docker
这篇文章提供了在Windows系统上安装与配置Docker的详细指南,包括Docker Desktop的安装及通过Docker来运行容器化应用的步骤。
452 1
Window系统安装Docker
|
人工智能 缓存 PyTorch
从零开始的ChatGLM 配置详细教程
这篇文章提供了从零开始配置ChatGLM的详细教程,包括环境配置、下载项目、在HuggingFace下载模型、解决常见报错以及运行项目的最终结果和一些番外内容。
|
存储 分布式计算 算法
探索Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式
在配置Hadoop集群之前,了解这三种模式的特点、适用场景和配置差异是非常重要的。这有助于用户根据个人需求和资源情况,选择最适合自己的Hadoop运行模式。在最初的学习和开发阶段,单机模式和伪分布式模式能为用户提供便利和成本效益。进而,当用户要处理大规模数据集时,完全分布式模式将是理想的选择。
652 2
|
Java 调度 开发者
定义和使用Quartz调度表达式
定义和使用Quartz调度表达式
|
Linux 编译器 vr&ar
【Linux】—— 详解动态库和静态库
【Linux】—— 详解动态库和静态库
530 0
|
存储 Oracle 关系型数据库
RAC创建ASM磁盘组时配置多路径和UDEV
RAC创建ASM磁盘组时配置多路径和UDEV
2834 7