博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab全局阈值ostu,Otsu的全局阈值处理实现
阅读量:4363 次
发布时间:2019-06-07

本文共 863 字,大约阅读时间需要 2 分钟。

基本介绍

为了克服图像噪声对图像分割结果的影响,利用图像中与像素具有相似邻域结构的像素提取当前像素的非局部空间信息,构造了基于像素的灰度信息和非局部空间灰度信息的二维直方图,并将此二维直方图引入到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.

转载地址:http://xqkfs.baihongyu.com/

你可能感兴趣的文章
java基础--逻辑运算符-- 002
查看>>
Performance plugin离线安装
查看>>
2017.10.13 unable to open debugger port(127.0.0.1:10308)
查看>>
如何设置table的border-radius?
查看>>
EL表达式和JSTL标签库
查看>>
Python Lambda 的简单用法
查看>>
记住密码, 不需要默认填写的input框中设置 autocomplete="new-password"
查看>>
面向对象编程(OOP)
查看>>
Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)...
查看>>
20165227 结对编程项目-四则运算 第二周
查看>>
20155227 《Java程序设计》实验四 Android开发基础设计实验报告
查看>>
git pull时出现冲突 放弃本地修改,使远程库内容强制覆盖本地代码
查看>>
使用jquery-qrcode生成二维码
查看>>
wen文章表设计
查看>>
MPEG2_TS流基本概念和数据结构 分类: ffmpeg-SDL-V...
查看>>
【贪心】删数问题
查看>>
饼图,扇形,柱状图
查看>>
WebDAV配置
查看>>
不同浏览器窗口大小加载不同CSS样式
查看>>
定制SharePoint中列表项添加页面
查看>>