1 imbinarize函数
在
【MATLAB Image Processing Toolbox 入门教程二】快速入门之“亮度校正”和“目标识别”
中我们已经简单使用过imbinarize函数,它的作用是使用阈值化方法将灰度图像或者灰度三维体二值化,注意,只能是灰度图像,如果要将其他类型图像转为二值图像,则需要先将其转化为灰度图。接下来我们对其进行详细介绍。
1.1 imbinarize函数使用语法及说明
BW=imbinarize(I):使用Otsu方法,将I中所有高于全局阈值的像素值替换为1,其余替换为0。imbinarize 使用包含 256 位的图像直方图来计算 Otsu 阈值。
BW=imbinarize(I,method):使用 method 指定的阈值化方法(‘global’ 或 ‘adaptive’)从图像 I 创建二值图像。
BW=imbinarize(I,T):使用阈值 T 从图像 I 创建二值图像。T 可以是指定为亮度值标量的全局图像阈值,也可以是指定为亮度值矩阵的局部自适应阈值。
BW=imbinarize(I,‘adaptive’,Name,Value):使用Name-Value来控制自适应阈值的几个因素,在下面的参数说明中会详细讲解。
1.2 imbinarize函数参数说明
输出参数BW就是一个二值图像,是一个与输入的I大小相同的逻辑数组或逻辑矩阵。下面对输入参数进行讲解。
I:输入的二维灰度图像或三维灰度图像体。注意!!!若直接对RGB图像使用imbinarize函数,则imbinarize函数会将其看做三维体灰度图像,不会单独对每个通道二值化,所以若要将RGB图像二值化,首先使用rgb2gray函数将其转化为灰度图像。
method:二值化所用到的方法,指定为:
①‘global’:用 Otsu 方法计算全局图像阈值。计算全局阈值的函数是graythresh和otsuthresh,此函数会在第二节和第三节分别详细讲解。
②‘adaptive’:使用每个像素周围的局部一阶图像统计量来计算局部自适应图像阈值。与此相关的函数是adaptthresh,此函数会在第四节详细讲解。
T:阈值,指定为由范围 [0, 1] 内的值组成的数值标量或数值数组。如果T是数值标量,则imbinarize函数将其看做全局阈值,若T是数值数组,则imbinarize函数将其看做自适应局部阈值。
Name-Value
①’Sensitivity’:自适应阈值的敏感度因子。默认为0.5,可以指定为[0 1]内的数。敏感度越高,越多的像素会被阈值化为前景,说白了,就是越多的像素被替换为1.
②’ForegroundPolarity’:此参数确定哪些像素被视为前景像素。