目录:
机器视觉(一):概述
机器视觉(二):机器视觉硬件技术
机器视觉(三):摄像机标定技术
机器视觉(四):空域图像增强
机器视觉(五):机器视觉与世界杯
机器视觉(六):频域图像增强
机器视觉(七):图像分割
机器视觉(八):图像特征提取
以下为正文
图像分割(image segmentation)是指把图像分割成各个具有特性的区域并提取出感兴趣目标的技术和过程。
现有的图像分割方法主要分以下几类:基于阈值(threshold)的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。
基于阈值的分割方法是一种应用十分广泛的图像分割技术,其实质是利用图像的灰度直方图信息获取用于分割的阈值,一个或几个阈值将图像的灰度级分为几个部分,认为属于同一部分的像素是同一个物体。
图像阈值化处理的变换函数表达式为:
大津法又叫最大类间方差法、最大类间阈值法(OTSU)。它的基本思想是,用一个阈值将图像中的数据分为两类,一类中图像的像素点的灰度均小于这个阈值,另一类中的图像的像素点的灰度均大于或者等于该阈值。如果这两个类中像素点的灰度的方差越大,说明获取到的阈值就是最佳的阈值(方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。)。则利用该阈值可以将图像分为前景和背景两个部分。而我们所感兴趣的部分一般为前景。
具体的分析可以参考我的另一篇博文:大津法(最大类间方差法OTSU)
双峰法阈值分割
I=imread('test2.jpg'); I=rgb2gray(I); subplot(1,2,1);
imhist(I);title('直方图');
thread=130/255;
subplot(1,2,2); I3=im2bw(I,thread);
imshow(I3);title('双峰法分割图');
A = imread('text.png');
figure;
subplot(121);imshow(A);title('原始图像')
T = mean2(A); %取均值作为初始阈值
done = false; %定义跳出循环的量
i = 0;
% while循环进行迭代
while ~done
r1 = find(A<=T); %小于阈值的部分
r2 = find(A>T); %大于阈值的部分
Tnew = (mean(A(r1)) + mean(A(r2))) / 2; %计算分割后两部分的阈值均值的均值
done = abs(Tnew - T) < 1; %判断迭代是否收敛
T = Tnew; %若不收敛,则将分割后的均值的均值作为新的阈值进行循环计算
i = i+1;
end
A(r1) = 0; %将小于阈值的部分赋值为0
A(r2) = 1; %将大于阈值的部分赋值为1 这两步是将图像转换成二值图像
subplot(122);imshow(A,[]);title('迭代处理后')