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的更多相关文章

  1. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  2. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  3. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  4. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  5. kzalloc 函数详解(转载)

    用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...

  6. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  7. jQuery.attr() 函数详解

    一,jQuery.attr()  函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...

  8. memset函数详解

    语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关  功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...

  9. CreateFile函数详解

    CreateFile函数详解 CreateFile The CreateFile function creates or opens the following objects and returns ...

随机推荐

  1. jquery选择器返回值

    jquery选择器$('selector')返回的不是数组,而是封装好的jquery对象.但这个对象有一个特别的地方,就是查询到的节点被以下标为属性,添加到了jquery对象上,所以它看起来像数组,因 ...

  2. 【转载】socket的半包,粘包与分包的问题

    http://zhaohuiopensource.iteye.com/blog/1541270 首先看两个概念: 短连接: 连接->传输数据->关闭连接    HTTP是无状态的,浏览器和 ...

  3. HDU-4716 A Computer Graphics Problem 水题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4716 直接搞.. //STATUS:C++_AC_0MS_288KB #include <fun ...

  4. 10 steps to get Ruby on Rails running on Windows with IIS FastCGI- 摘自网络

    Since the original tech preview release of FastCGI last year, we've been seeing a lot of requests fo ...

  5. dynamic调用时报RuntimeBinderException:“object”未包含“xxx”的定义 错误

    情况如下:两个项目项目A命名空间 Test.PA   匿名类型所在 项目B命名空间 Test.PB 在Test.PB 中通过dynamic关键字调用Test.PA中匿名类型时报上述错误 解决办法 在项 ...

  6. [Objective-c 基础 - 1.3] OC带返回值的类方法

    /* 计算器类 1>返回π 2>计算两个整数的平方 3>计算两个整数的和 */ #import <Foundation/Foundation.h> @interface ...

  7. 《数据通信与网络》笔记--QoS

    QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 1.QoS参数 衡量服务质量QoS的参数主要包括: 端到端延迟(Delay) ...

  8. js为表格添加行和列

    <table id="studentTable" align="center" border="1px;" cellpadding=& ...

  9. 用 C# 做人脸检测(EmguCV)

    用 C# 做人脸检测(EmguCV)   原发:bbs.csdn.net 作者:野比 (conmajia@gmail.com) 时间:May 2012 下载源码 准备工作 下载 EmguCV 傻瓜安装 ...

  10. 8000401a 错误及解决办法

    将web程序部署到服务器上时,偶尔会遇到下面的错误: System.Runtime.InteropServices.COMException (0x8000401A): 检索 COM 类工厂中 CLS ...