贝叶斯图像分类实验

 

贝叶斯分类器

一 实验目的

将模式识别方法与图像处理技术相结合,掌握利用最小错分概率贝叶斯分类器进行图像分类的基本方法,通过实验加深对基本概念的理解。

二 实验原理

贝叶斯图像分类的设计是基于贝叶斯决策理论的。贝叶斯决策理论是统计模式识别的基本理论,其假设第一,各类别总体的概率分布是已知的;第二:要决策分类的类别数是一定的。贝叶斯决策理论研究了模式类的概率结构完全知道的理想情况。这种情况实际中极少出现,但提供了一个对比其它分类器的依据,即“最优”分类器。

常用的决策分类器主要有以下几种。最小错误率的贝叶斯决策规则,最小风险决策规则,NP决策规则以及极小极大决策规则。本次实验运用的主要是基于最小错误率的贝叶斯分类器。基于最小错误率的贝叶斯分类器的主要思想是:利用贝叶斯公式使得错误率最小。贝叶斯分类以贝叶斯定理为基础,通过训练大量样本来估计后验概率。

贝叶斯公式通过类条件概率密度形式的观察值,将先验概率转化为后验概率。

图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。本次实验利用最小错误率贝叶斯分类方法确定图像分割阈值。

  图像中目标与背景有一定的交错,会产生将目标错分为背景与将背景错分为目标两类错误,通过Bayes最小错误率分类器求取“最优阈值”可令总的错误率最小。

假设目标与背景两类像素值均服从正态分布且混有加性高斯噪声,分类问题可以使用最小错分概率贝叶斯分类器来解决。

图像的混合概率密度函数可用下式表示;

图像中背景的先验概率,图像中目标的先验概率,图像中背景的概率密度,图像中目标的概率密度。

        

假定目标的灰度较亮,背景的灰度较暗,则有,求一分割阈值T,使分类错误率最小。

 

 

 

把目标错分为背景的概率可表示为,把背景错分为目标的概率可表示为,总的误差概率为,为求得使误差概率最小的阈值T, 将E(T)对T求导并令导数为0,得代换后可得,此时,若设,则有

,若还有,则。这时的最优阈值就是两类区域灰度均值,实际运算依靠迭代算法进行。

图2-1 概率密度函数

最优阈值的迭代算法:

设有一幅数字图像,混有加性高斯噪声,可表示为

            

此处假设图像上各点的噪声相互独立,且具有零均值,如果通过阈值分割将图像分为目标与背景两部分,则每一部分仍然有噪声点随机作用于其上,于是,目标和可表示为

           

           

迭代过程中,会多次地对和求均值,则

         

        

 

 

可见,随着迭代次数的增加,目标和背景的平均灰度都趋向于真实值。因此,用迭代算法求得的最佳阈值不受噪声干扰的影响。

三 实验步骤及程序

  1. 实验步骤
  2. 利用最优阈值对实验图像进行分割的迭代步骤为:
  3. (1)确定一个初始阈值,可取为图像灰度最小值与最大值和的一半。                
  4. 式中,和为图像灰度的最小值和最大值。
  5. (2)利用第k次迭代得到的阈值将图像分为目标和背景两大区域,其中
  6.                   
  7.                  
  8. (3)计算区域和的灰度均值和。
  9. (4)计算新的阈值,其中
  10.                      
  11. (5)如果小于允许的误差,则结束,否则,转步骤(2)。
  12. 利用迭代法求得最优阈值后,仍需进行一些人工调整才能将此阈值用于实验图像的分割,这是因为,这种最优阈值仍然属于全局阈值,它利用了图像中所有像素点的信息,但当光照不均匀时,图像中部分区域的灰度值可能差距较大,造成计算出的最优阈值分割效果不理想。

 

2.实验程序

%基于贝叶斯分类算法的图像阈值分割

clear

clc;

Im = imread('C:\Users\mimos\Downloads\apple.jpg');

subplot(1,3,1),imhist(Im),title('直方图')

subplot(1,3,2),imshow(Im)

title('原始图像')

[x,y]=size(Im);                    % 求出图象大小

b=double(Im);                 

zd=max(max(Im))                  % 求出图象中最大的灰度

zx=min(min(Im))                   % 最小的灰度

T=(zd+zx)/2;                     % T赋初值,为最大值和最小值的平均值

TT=0;                           %TT赋初值

S0=0.0; n0=0.0;                   %为计算灰度大于阈值的元素的灰度总值、个数赋值

S1=0.0; n1=0.0;                   %为计算灰度小于阈值的元素的灰度总值、个数赋值

allow=10;                        % 新旧阈值的允许接近程度

d=abs(T-TT);

count=0;                         % 记录几次循环

while(d>=allow)                   % 迭代最佳阈值分割算法

    count=count+1;

    for i=1:x,

        for j=1:y,

            if Im(i,j)<T,

                S0=S0+b(i,j);    

                n0=n0+1;

            end

            if Im(i,j)>=T,

                S1=S1+b(i,j);

                n1=n1+1;

            end

        end

    end

    T0=S0/n0;

    T1=S1/n1;

    TT=(T0+T1)/2;                 %在阈值T下,迭代阈值的计算过程

    d=abs(T-TT);

    T=TT;

end

S0

d

count

T

i1=im2bw(Im,T/255);               % 图像在最佳阈值下二值化

subplot(133),imshow(i1)

title('实验结果')

 

四 实验结果与分析

各参数如下:

zd(:,:,1) =255

zd(:,:,2) =255

zd(:,:,3) =255

 zx(:,:,1) =0

zx(:,:,2) =0

zx(:,:,3) =0

 

S0 =64206810

d =4.3590

count =2

T =102.9470

 

 

   

 

  

图4-1 处理图像

 

 

 

 

 

  

利用迭代法求得最优阈值仍然属于全局阈值。由图4-1分割前后的图像可知,分割后的图像有两个灰度级,即分为目标背景两个部分。将原图中的每一个像素与分离出的阈值作比较,大于的为目标,小于的为背景。

本实验不足其一在于分割出的阈值仍然是全局阈值。全局阈值对于图像分割效果不是很好。可以考虑先对进行分割,然后对各小区域局部阈值化。其二当光照不均匀的时候,对图像的阈值分割会照成影响。可以考虑使用邻域平均法或加权平均法对图像进行平滑。可以得到更好的结果。

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/majiawenzzz/article/details/81122637