• 大小: 58KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: 其他
  • 标签: 阈值分割  

资源简介

利用阈值进行分割,简单,适用于提取特征较为明显的目标

资源截图

代码片段和文件信息

%基于贝叶斯分类算法的图像阈值分割 
clear 
clc; 
Init = imread(‘SLR.bmp‘); 
Im=rgb2gray(Init);
subplot(131)imhist(Im)title(‘直方图‘) 
subplot(132)imshow(Im) 
title(‘原始图像‘) 
[xy]=size(Im);                    % 求出图象大小 
b=double(Im);                   
zd=double(max(Im))                  % 求出图象中最大的灰度 
zx=double(min(Im))                % 最小的灰度  
T=double((zd+zx))/2;                     % T赋初值,为最大值和最小值的平均值 

count=double(0);                         % 记录几次循环 
while 1                   % 迭代最佳阈值分割算法 
    count=count+1; 
    S0=0.0; n0=0.0;                   %为计算灰度大于阈值的元素的灰度总值、个数赋值 
    S1=0.0; n1=0.0;                   %为计算灰度小于阈值的元素的灰度总值、个数赋值 
    for i=1:x
        for j=1:y
            if double(Im(ij))>=T
                S1=S1+double(Im(ij));  %大于阈域值图像点灰度值累加
                n1=n1+1;                %大于阈域值图像点个数累加
            else 
                S0=S0+double(Im(ij));  %小于阈域值图像点灰度值累加
                n0=n0+1;                %小于阀域值图像点个数累加
            end 
        end 
    end  
    T0=S0/n0; %求小于阀域值均值
    T1=S1/n1; %求大于阀域值均值
    if abs(T-((T0+T1)/2))<0.1     %迭代至 前后两次阀域值相差几乎为0时 停止迭代。
        break;
    else
       T=(T0+T1)/2;                 %在阈值T下,迭代阈值的计算过程 
   end 
end 

count                                %显示运行次数
T
i1=im2bw(ImT/255);               % 图像在最佳阈值下二值化 
subplot(133)imshow(i1) 
title(‘实验结果‘) 


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1594  2009-03-19 22:10  阈值分割迭代法\iterative.m

     文件      51930  2009-03-19 22:08  阈值分割迭代法\lena.BMP

     文件      58856  2009-03-19 22:03  阈值分割迭代法\result.bmp.fig

     文件      18654  2009-03-19 21:50  阈值分割迭代法\SLR.BMP

     目录          0  2009-04-29 22:28  阈值分割迭代法

----------- ---------  ---------- -----  ----

               131034                    5


评论

共有 条评论