基于最大类间、类内方差比法的图像分割
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、本实验阈值 Th 的确定方法:
由于最大类间、 类内方差比法图像分割的核心是阈值 Th 的确定, 即要处理类间方差和类内方差的比值,找出最大的比值,此时满足最 大比值的 Th 即为所求。我们可以将所有类间、类内方差的比值放在 一个矩阵中,然后使用 find 函数找出矩阵的最大值,对应的 Th 即为 所求, 。
由于最大类间、类内方差比法是基于图像灰度分布的阈值方法。 数学模型如下: 设原图像为 f(x,y),经过分割处理后的图像为 g(x,y),g(x,y) 为二值图像,则有
1 g ( x, y ) 0
f ( x, y ) Th f ( x, y ) Th
(3-1)
2、最大类间方差法与最大类间、类内方差比法的不同:
f ( x, y ) Th* f ( x, y ) Th*
(4 8)
五、基于 MATLAB 的实验仿真 1、应用于灰度图像分割代码
clear all; close all; a=imread('D:\我的图片\3.jpg'); a=rgb2gray(a); figure; imshow(a); title('此为原图'); a=double(a); [m,n]=size(a); th=zeros(1,254); %建立一维零矩阵存放类间类内方差比的值;我们需要对灰
(4 3)
j 1
3、按下式计算两类在图像中的分布概率 p1 和 p2;
p1
N N
c1
p1
N c2 N im a g e
(4 4)
im a g e
4、计算类间方差σb^2=和类内方差σin^2;
b2 p1 (1 )2 p2 (2 )2
2 2 in p1 12 p2 2
4、本实验对不同图像的处理方法:
针对灰度图像,笔者打算根据如下的实验步骤进行实验仿真; 对于彩色图像,笔者打算分别将原图三通道提取出来,然后按照如下 的实验步骤分别对单通道分割,然后对处理后的三个通道进行整合, 得到新的分割图像。
四、实验步骤
1、给定一个初始阈值 Th=Th0,将图像分成 C1 和 C2 两类; 2、分别按下列公式计算两类中的方差σ1^2 和σ2^2,灰度均值
度值从 1 到 254 遍历; for T=1:254 s1=0;
s2=0; c1=0; c2=0; q1=0; q2=0; for i=1:m for j=1:n if(a(i,j)>=T) s1=a(i,j)+s1; c1=c1+1; end if(a(i,j)<T) s2=a(i,j)+s2; c2=c2+1; end end end u1=s1/c1; u2=s2/c2; p1=c1/(c1+c2); p2=c2/(c1+c2); u=(s1+s2)/(c1+c2); %C1 的灰度均值; %C2 的灰度均值; %C1 的发生概率; %C2 的发生概率; %样本的总体均值;
最大类间方差法又叫大津法,简称 OTSU。 它是按图像的灰度特性, 将图像分成背景和目标 2 部分。背景和目标之间的类间方差越大,说 明构成图像的 2 部分的差别越大。它只需处理类间方差,在 Matlab 中 grathresh()即为最大类间方差函数,用来寻找阈值。 最大类间、类内方差比法是在最大类间方差法基础上的发展, 在少部分教科书上可见。它是要处理类间方差与类内方差的比值,找 到满足二者比值最大时的 Th,在 Matlab 没有此方法的工具函数。
x=p1*(u-u1)*(u-u1)+p2*(u-u2)*(u-u2); for i=1:m for j=1:n if(a(i,j)>=T)
%类内方差;Βιβλιοθήκη q1=(a(i,j)-u1)*(a(i,j)-u1)+q1; end if(a(i,j)<T) q2=(a(i,j)-u2)*(a(i,j)-u2)+q2; end end end y=p1*q1+p2*q2; c=x/y; th(T)=c; end d=find(th==max(th(:))); 置,也就是具体的阈值 T Th=d; b=zeros(m,n); for i=1:m for j=1:n if(a(i,j)>=Th) b(i,j)=255; %新建二维矩阵 b 用来显示分割后的图像 %寻找方差比最大时,该方差比在 th 矩阵中所处的位 %零矩阵每个位置都存放着类间、类内方差的比值; %类间方差;
(4 5)
(4 6)
5、 选择最佳阈值 Th=Th*, 使得图像按照该阈值分成 C1 和 C2 后, 满足两者方差比最大:
b2 m ax 2 in
, Th Th *
(4 7)
6、按下式对原图的像素进行变换
1 g ( x, y ) 0
end if(a(i,j)<Th) b(i,j)=0; end end end figure; imshow(b); title(‘此为分割结果’);
二、应用于彩色图像的分割代码
clear all; close all; X=imread('D:\我的图片\3.jpg'); figure; imshow(X); title('此为原图'); X=double(X); I=X; %建立与原图相等的矩阵 I,用来将 X 三通道分割的结果
最大类间、类内方差比法进行图像分割
一、实验目的
在理解均匀性图像分割算法的基础上,实现图像的分割,要求 对灰度图像和彩色图像均进行实验, 并讨论该方法对何种情况下的图 像有比较好的分割效果。
二、实验要求
建议采用 MATLAB 软件编程实现,核心程序不准调用 MATLAB 的图 像处理函数。
三、实验思路 1、分割的基本原理:
μ1 和μ2,以及图像的总体均值μ;
灰度方差:
i2
i
( x , y )ci
( f ( x, y ) ui )
2
(4 1)
灰度均值:
1 N ci
( x , y ) c i
m
f ( x, y)
n
(4 2)
总体均值:
1 N im a g e
i 1
f (i, j )