Main Content

im2bw

(不推荐)基于阈值将图像转换为二值图像

不建议使用 im2bw。请改用 imbinarize。有关详细信息,请参阅兼容性注意事项

说明

示例

BW = im2bw(I,level) 将灰度图像 I 转换为二值图像 BW,方法是将输入图像中亮度大于 level 的所有像素替换为值 1(白色),将所有其他像素替换为值 0(黑色)。

此范围与图像的类的可能信号级别相关。因此,0.5level 值对应于类的最小值和最大值之间的中等强度值。

BW = im2bw(X,cmap,level) 将具有颜色图 cmap 的索引图像 X 转换为二值图像。

BW = im2bw(RGB,level) 将真彩色图像 RGB 转换为二值图像。

示例

全部折叠

load trees
BW = im2bw(X,map,0.4);
imshow(X,map), figure, imshow(BW)

输入参数

全部折叠

二维灰度图像,指定为 m×n 数值矩阵。

数据类型: single | double | int16 | uint8 | uint16

二维索引图像,指定为 m×n 数值矩阵。

数据类型: single | double | int16 | uint8 | uint16

与索引图像 X 相关联的颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。每行是一个三元素 RGB 三元组,指定颜色图的单个颜色的红、绿和蓝分量。

数据类型: single | double | int16 | uint8 | uint16

二维 RGB 图像,指定为 m×n×3 数值矩阵。

数据类型: single | double | int16 | uint8 | uint16

亮度阈值,指定为 [0, 1] 范围内的数值。要计算 level,您可以使用 graythresh 函数。

数据类型: single | double | int16 | uint8 | uint16

输出参量

全部折叠

二值图像,以 m×n 逻辑矩阵形式返回。

数据类型: logical

算法

如果输入图像不是灰度图像,则 im2bw 使用 ind2grayrgb2gray 将输入图像转换为灰度图像,然后通过阈值化将此灰度图像转换为二值图像。

版本历史记录

在 R2006a 之前推出

全部折叠

R2016a: 不建议使用 im2bw

对于大多数图像来说,im2bw 的默认亮度阈值不是最佳值。如果您要使用适合您的图像的阈值,则在调用 im2bw 之前,您必须使用 graythresh 计算级别。

R2016a 引入了 imbinarize 函数。此函数只需一步即可计算亮度阈值和执行二值化。imbinarize 还有其他好处,例如,它能在图像有非均匀阴影时执行自适应阈值化。有关详细信息,请参阅 Image Binarization - New 2016a Functions

下表显示了 im2bw 的一些典型用法,以及如何更新代码以改用 imbinarize

不推荐推荐
BW = im2bw(I);
BW = imbinarize(I,0.5);
thresh = graythresh(I);
BW = im2bw(I,thresh);
BW = imbinarize(I);

当前没有删除 im2bw 的计划。