graythresh是一个函数,功能是使用
最大类间方差法找到图片的一个合适的阈值。利用这个阈值通常比人为设定的阈值能更好地把一张灰度图像转换为二值图像。
函数简介
函数功能:使用
最大类间方差法找到图片的一个合适的阈值(threshold)。在使用
im2bw函数将灰度图像转换为二值图像时,需要设定一个阈值,这个函数可以帮助我们获得一个合适的阈值。利用这个阈值通常比人为设定的阈值能更好地把一张灰度图像转换为二值图像。
调用格式:
level = graythresh(I)
[level EM] = graythresh(I)
通过计算获得输入图像的阈值,这个阈值在[0,1]范围内。该阈值可以传递给im2bw完成灰度图像转换为二值图像的操作。
graythresh使用
最大类间方差法来获得一个阈值。
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
程序示例
imggray =
imread('cell.bmp');
subplot(221);
imshow(imggray); title('原始图像');
imgbw =
im2bw(imggray,0.5);
subplot(222); imshow(imgbw); title( '使用默认阈值0.5');
imgbw = im2bw(imggray, 0.25);
subplot(223); imshow(imgbw); title( '指定阈值为0.25');
level = graythresh(imggray);imgbw = im2bw(imggray,level);
subplot(224);
imshow(imgbw); title('使用
最大类间方差法(Otsu)获得阈值');
由此可见, 如果不使用graythresh函数来获得阈值, 可能需要多次尝试才能获得一个合适的阈值。