• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-04
  • 语言: Matlab
  • 标签: otsu  迭代  

资源简介

迭代法和二位otsu分割算法程序,matlab编写,可用

资源截图

代码片段和文件信息

%%%%%%%%%%%图像分割迭代法%%%%%%%%%%%%
clear
clc;
tic; %计时器
% Im=imread(‘D:\tank2.tiff‘);
Im=imread(‘D:\11.bmp‘);
% Im=imread(‘D:\111.jpg‘);
% Im=rgb2gray(Im);
% subplot(131)imhist(Im)title(‘直方图‘);
% subplot(121)imshow(Im)title(‘原始图像‘);
[xy]=size(Im);%求出图像大小
b=double(Im);
zd=double(max(max(Im)));%求出图像最大灰度值
zx=double(min(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;%显示最佳阈值
toc;
i1=im2bw(ImT/255);%图像在最佳阈值下二值化
figureimshow(i1);
% title(‘实验结果‘);

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

     文件       1375  2014-05-14 17:51  fenge\diedai.m

     文件       1668  2014-05-14 17:53  fenge\otsu2.m

     目录          0  2014-07-15 16:57  fenge

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

                 3043                    3


评论

共有 条评论