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

资源简介

在MATLAB下实现OTSU算法,另外还有关于此算法的改进形式,对图像的阈值进行最佳的计算,提高二值化的效果

资源截图

代码片段和文件信息

% Otsu方法是一种聚类的阈值化方法,基于统计理论来寻找阈值
rimax=0;size1=0;
%读入一幅图像
I=imread(‘2.bmp‘);
%对图像进行灰度变换
a=rgb2gray(I);
%显示变换后的图像
figureimshow(a)
%显示图像a的直方图
imhist(a)
%把直方图中灰度级所对应的像素数放入数组g
g=imhist(a);
%求出图像中所有的像素数
for j=1:256
    size1=size1+g(j);
end
for level=1:256
   count=0;sumpels=0;
%求背景的概率和均值
  for loop=1:level
    count=count+g(loop);
    sumpels=sumpels+loop*g(loop);
 end
w0=count/size1;
u0=sumpels/count;
%求目标的概率和均值
w1=1-w0;
if size1-count~=0
    totalpels=0;
    for i=1:256
        totalpels=totalpels+i*g(i);
    end
    u1=(totalpels-sumpels)/(size1-count);
else
    u1=0;
end
%求出两类间的最大方差值,此时阈值即为所求
ritemp=w0*w1*(u0-u1)*(u0-u1);
if ritemp>rimax
    rimax=ritemp;
    result=level;
end
end
%用所得阈值进行图像二值化
BW = im2bw(a1-result/255);
%显示二值化以后的图像
figureimshow(BW)

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

     文件        955  2010-04-21 15:48  ostu.m

     文件        980  2010-04-21 15:48  ostugaijin.m

     文件      62697  2009-11-14 13:52  1.jpg

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

                64632                    3


评论

共有 条评论