资讯详情

matlab中imbinarize用法

imbinarize

二维灰度图像或三维二值化通过阈值化

全页折叠

语法

BW = imbinarize(I)

BW = imbinarize(I,method)

BW = imbinarize(I,T)

BW = imbinarize(I,'adaptive',Name,Value)

说明

示例

BW= imbinarize(I)替换所有高于全局阈值的值1并将所有其他值设置为0,二维或三维灰度图像I创建二值图像。默认情况下,imbinarize使用 Otsu 该方法选择特定阈值来最小化阈值化黑白像素类内方差[1]。imbinarize使用包含 256 个 bin 计算图像直方图 Otsu 阈值。请参考不同的直方图otsuthresh。

示例

BW= imbinarize(I,method)使用method指定阈值化方法('global''adaptive')从图像I创建二值图像。

BW= imbinarize(I,T)使用阈值T从图像I创建二值图像。T可指定为标量亮度值的全局图像阈值,也可指定为亮度值矩阵的局部自适应阈值。

示例

BW= imbinarize(I,'adaptive',Name,Value)使用名称-值对从图像中对组I为了控制自适应阈值的各个方面,创建二值图像。

示例

全部折叠

利用全局阈值对图像进行二值化

尝试此示例Copy Command Copy Code

将灰度图像读入工作区。

I = imread('coins.png');

将图像转换为二值图像。

BW = imbinarize(I);

并排显示原始图像及其二值版本。

figure imshowpair(I,BW,'montage')

使用局部自适应阈值对图像进行二值化

尝试此示例Copy Command Copy Code

将灰度图像读入工作区。

I = imread('rice.png');

将灰度图像转换为二值图像。

BW = imbinarize(I, 'adaptive');

并排显示原始图像及其二值版本。

figure imshowpair(I,BW,'montage')

二值化前景比背景暗的图像

尝试此示例Copy Command Copy Code

将灰度图像读入工作区并显示。

I = imread('printedtext.png'); figure imshow(I) title('Original Image')

使用自适应阈值将图像转换为二值图像。ForegroundPolarity前景比背景暗。

BW = imbinarize(I,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);

显示图像的二值版本。

figure imshow(BW) title('Binary Version of Image')

利用全局阈值对三维体进行二值化

尝试此示例Copy Command Copy Code

将三维灰度强度数据加载到工作区。

load mristack; V = mristack;

检查三维体。

figure slice(double(V),size(V,2)/2,size(V,1)/2,size(V,3)/2) colormap gray  shading interp

将强度三维体转化为二值三维体。

J = imbinarize(V);

检查二值三维体。

figure slice(double(J),size(J,2)/2,size(J,1)/2,size(J,3)/2) colormap gray  shading interp

输入参数

全部折叠

I-输入图像 二维灰度图像|三维灰度图像体

输入图像,指定为二维灰度图像或三维灰度图像体。imbinarize要求数据类型doublesingle的像素值在 [0, 1] 范围内。你可以用rescale函数将像素值调整到所需范围。

imbinarize将 RGB 图像被解释为三维体灰度图像,不会单独二值化每个通道。 RGB 图像首先生成二值图像rgb2gray将图像转换为灰度图像。

single|double|int8|int16|int32|uint8|uint16|uint32

method-二值化图像的方法'global'(默认) |'adaptive'

二值化图像的方法被指定为下列值之一。

意义

'global'

用 Otsu 计算全局图像阈值的方法。 Otsu 请参考方法的详细信息graythresh。

'adaptive'

使用每个像素周围的局部一阶图像统计来计算局部自适应图像阈值。详情请参阅adaptthresh。若图像包含InfNaN,则imbinarize对于'adaptive'该方法的行为尚未定义。InfNaN传播可能不局限于InfNaN像素周围的邻域。

char|string

T-阈值 数值标 | 数值数组

亮度阈值,指定为由范围 [0, 1] 内的值组成的数值标量或数值数组。

  • 如果 T 是数值标量,则 imbinarize 将 T 解释为全局图像阈值。使用 graythresh 或 otsuthresh 计算全局图像阈值。

  • 如果 T 是数值数组,则 imbinarize 将 T 解释为局部自适应阈值。使用 adaptthresh 计算局部自适应阈值。

single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名称-值参数

BW = imbinarize(I,'adaptive','Sensitivity',0.4);

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

Sensitivity - 自适应阈值的敏感度因子0.50 (默认) | [0, 1] 范围内的数值

自适应阈值的敏感度因子,以逗号分隔的对组形式指定,其中包含 'Sensitivity' 和一个 [0, 1] 范围内的数值。高敏感度值会使更多像素阈值化为前景,但存在混入部分背景像素的风险。

single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

ForegroundPolarity - 确定哪些像素被视为前景像素'bright' (默认) | 'dark'

确定将哪些像素视为自适应阈值化的前景像素,以逗号分隔的对组形式指定,其中包含 'ForegroundPolarity' 和下列值之一。

意义

'bright'

前景比背景亮。

'dark'

前景比背景暗

char | string

输出参数

全部折叠

BW - 输出二值图像 逻辑矩阵 | 逻辑数组

输出二值图像,以与 I 大小相同的逻辑矩阵或逻辑数组形式返回。

logical

提示

  • 要从索引图像生成二值图像,首先使用 ind2gray 将图像转换为灰度图像。

算法

'adaptive' 方法使用局部自适应阈值对图像进行二值化。imbinarize 使用像素邻域的局部均值强度计算每个像素的阈值。这种方法也称为 Bradley 方法 [2]。'adaptive' 方法使用约为图像大小 1/8 的邻域大小(由 2*floor(size(I)/16)+1 求得)。要使用其他一阶局部统计量或不同的邻域大小,请参阅 adaptthresh。

参考

[1] Otsu, N., "A Threshold Selection Method from Gray-Level Histograms." IEEE Transactions on Systems, Man, and Cybernetics. Vol. 9, No. 1, 1979, pp. 62–66.

[2] Bradley, D., G. Roth, "Adapting Thresholding Using the Integral Image," Journal of Graphics Tools. Vol. 12, No. 2, 2007, pp.13–21.

标签: bradley端子块定时继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台