原创 图像处理函数详解——im2bw

2013-11-20 00:22 690 6 1

  阈值变换

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

 

作者: 李肖遥, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3912462.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条