资源简介
在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
- 上一篇:spasm工具包
- 下一篇:Dijkstra算法的Matlab程序,有验证。
相关资源
- 最大类间方差阈值matlab程序
- OTSU二值化算法matlab
- 二值化算法:Otsu算法、Bernsen算法、
- otsu图像分割的matlab代码
- matlab实现otsu算法
- 灰度图像的二维Otsu自动阈值分割法
- Matlab分块Otsu阈值分割
- Matlab二维Otsu阈值分割
- 图像二值化OTSU方法matlab程序
- OTSU算法二维matlab实现
- OTSU算法的matlab实现
- 图像分割算法
- 多阈值的OTSU算法的图像分割
- matlab实现阈值图像分割
- OSTU多阈值分割otsu(Matlab)
- otsu 多维OTSU阈值分割方法
- Otsus 图像分割
- two_valuable 灰度图像二值化比较经典的
- cannyedgedetection.tar canny边缘检测的mat
- 数字图像处理之全局阈值分割与Otsu阈
- 基于Otsu的二维图像分割matlab代码
- 采用Otsu阈值的图像分割源程序
评论
共有 条评论