matlab全局阈值ostu,Otsu的全局阈值处理实现

基本介绍

为了克服图像噪声对图像分割结果的影响,利用图像中与像素具有相似邻域结构的像素提取当前像素的非局部空间信息,构造了基于像素的灰度信息和非局部空间灰度信息的二维直方图,并将此二维直方图引入到Otsu曲线阈值分割法中,提出了基于灰度和非局部空间灰度特征的二维Otsu曲线阈值分割法。最小时即为分割的最佳阈值(minimizes the weight  within class variance. ) 这个就意味着当取阀值为t时,前景和背景的方差加权和最小,即前景和背景每部分的像素都比较平稳。

参考代码

function th=thresh_md(a);

x=imread(a);

a=rgb2gray(x);

subplot(211);

imshow(a,[]);

[m,n]=size(a);

N=m*n;

L=256;

for i=1:L

count(i)=length(find(a==(i-1)));

f(i)=count(i)/(N);

end

for i=1:L

if count(i)~=0

st=i-1;

break;

end

end

for i=L:-1:1

if count(i)~=0

nd=i-1;

break;

end

end

p=st; q=nd-st;

u=0;

for i=1:q

u=u+f(i)*(p+i-1);

ua(i)=u;

end;

for i=1:q

w(i)=sum(f(1:i));

end;

w=w+0.0001;

d=(u*w-ua).^2./(w.*(1-w));

[y,tp]=max(d);

th=tp+p;

for i=1:m

for j=1:n

if a(i,j)>th

a(i,j)=0;

else

a(i,j)=255;

end

end

end

subplot(212);

imshow(a,[]);输出结果:

0818b9ca8b590ca3270a3433284dd417.png 

0818b9ca8b590ca3270a3433284dd417.png

关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博和新浪微博songzi_tea.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值