⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bb.m

📁 基于贝叶斯分类算法的图像阈值分割 迭代最佳阈值分割算法 matlab7.0环境运行无误
💻 M
字号:
%基于贝叶斯分类算法的图像阈值分割
clear
clc;
Im = imread('flower.tif');
subplot(131),imhist(Im),title('直方图')
subplot(132),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('实验结果')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -