matlab 图像转换 命令 im2bw

来源:互联网 发布:网络宣传推广公司 编辑:程序博客网 时间:2024/05/21 00:18

处理图像前先看看 图像有几种格式


matlab   im2bw作用

使用阈值(threshold)变换法

把灰度图像(grayscale image)转换成二值图像 (黑白图,0黑 255白)

当然, 也可以是其他任意两种颜色的组合。

用法:

BW = im2bw(I,level)

  将灰度图像 I 转换为二进制图像。输出图像 BW 将输入图像中亮度值大于 level 的像素替换为值1 (白色),其他替换为值0(黑色)。

       你指定 level 在 [0,1]之间,函数graythresh 能用来自动计算变量 level 。如果你不指定 level ,im2bw 使用 0.5。

       eg: 比如level是 0.8,0.8*255=204 那么输入图像中的像素值大于204的全部变成255(白),剩下的变成0(黑)。


BW = im2bw(X,map,level)

将颜色表为 map 的索引图像 X 转换为二进制图像。

索引图像是一种把像素值直接作为RGB调色板下标的图像。
索引图像可把像素值“直接映射”为调色板数值。
一幅索引图包含一个数据矩阵data和一个调色板矩阵map
索引模式的图像就像是一块块由彩色的小瓷砖所拼成的,由于它最多只能有256种彩色简单说明55223351225454645................

上述表格就是小瓷砖,里面的值就是索引,每一个索引代表
若调色板用了256种颜色编号0-255,那么图片中某个点的颜色值为1,就是指调色板中标号1的颜色,而不管他实际是红是蓝
数据矩阵可以是uint8,uint16或双精度类型的,map则总是一个m×3的双精度矩阵。

反正就是索引图的处理,不理解就看这里


BW = im2bw(RGB,level)

将 RGB 真彩图像转换为二进制图像。Level是归一化的阈值,值域为[0,1]。Level可以由函数graythresh(I)来计算。
【如果输入图像不是灰度图像, im2bw 首先将图像转换为灰度图像,然后通过阈值将灰度图像转换成二进制图像。】


例子:
X = imread("filename") 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:上面已经解释了,输出的是二值图像。

原创粉丝点击