接下来介绍OTSU方法的原理:

***************************************************************************************************************************************************************

OTSU法对于具有双峰性质的灰度图像或是彩色图像的某一通道的分割效果很好,程序为了增加健壮性加了个可以根据实际情况确定的修正值th_set.

**************************************************************************************************************************************************************

function y1=OTSU(image,th_set)

�=imread('color1.bmp');

gray=rgb2gray(image);%原图像的灰度图

low_high=stretchlim(gray);%增强图像,似乎也不是一定需要

gray=imadjust(gray,low_high,[]);

% subplot(224);imshow(gray);title('after adjust');

count=imhist(gray);

[r,t]=size(gray);

n=r*t;

l=256;

count=count/n;%各级灰度出现的概率

for i=2:l

if count(i)~=0

st=i-1;

break

end

end

%以上循环语句实现寻找出现概率不为0的最小灰度值

for i=l:-1:1

if count(i)~=0;

nd=i-1;

break

end

end

%实现找出出现概率不为0的最大灰度值

f=count(st+1:nd+1);

p=st;q=nd-st;%p和分别是灰度的起始和结束值

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

%计算出选择不同k的时候,A区域的概率

d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差

[y,tp]=max(d);%求出最大方差对应的灰度级

th=tp+p;

if th

th=tp+p;

else

th=th_set; %根据具体情况适当修正门限

end

y1=zeros(r,t);

for i=1:r

for j=1:t

x1(i,j)=double(gray(i,j));

end

end

for i=1:r

for j=1:t

if (x1(i,j)>th)

y1(i,j)=x1(i,j);

else

y1(i,j)=0;

end

end

end

%上面一段代码实现分割

% figure,imshow(y1);

% title('灰度门限分割的图像');

接下来介绍OTSU方法的原理以及用C语言实现:

阈值将原图像分成前景、背景两个图像。

前景:用n1,csum,m1来表示在当前阈值下的前景的点数,质量矩,平均灰度;

背景:用n2,sum-csum,m2来表示在当前阈值下的背景的点数,质量矩,平均灰度;

当取最佳阈值时,背景应该与前景差别最大,关键在于如何选择衡量差别的标准;

而在otsu算法中这个衡量差别的标准就是最大类间方差;

在以下程序中类间方差用是sb表示,最大类间方差用fmax,关于最大类间方差(otsu)的性能:

类间方差对噪音和目标大小十分敏感,它仅对类间方差为单峰值的图像产生较好的分割效果,

当目标与背景的大小比例悬殊时,类间方差准则函数可能呈现双峰或多峰,此时效果不好,但是类间方差使用是最少的。

最大类间方差(otsu)的公式推导:

记t为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1;

则图像的总平均灰度为:u=w0*u0+w1*u1;

前景和背景图像的方差:g=w0*(u0-u).^2+w1*(u1-u).^2

=w0*w1*(u0-u1).^2

此公式为方差公式。

上面的g公式也就是下面程序中得 sb的表达式:

当方差g最大时,可以认为此时前景与背景差异最大,也就是此时的灰度值是最佳阈值;

大津阈值分割matlab实验,OTSU(大津法)分割源程序(MATLAB版)相关推荐

  1. 矩形法求定积分公式MATLAB,Matlab实验报告四(矩形法梯形法抛物线法求定积分).doc...

    Matlab实验报告四(矩形法梯形法抛物线法求定积分) 数学与信息科学系实验报告 实验名称 定积分的近似计算 所属课程 数学软件与实验 实验类型 综合型实验 专 业 信息与计算科学 班 级 学 号 姓 ...

  2. 离散时间系统的时域分析 matlab,实验十二离散时间系统时域分析的MATLAB实现.doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 实验十二离散时间系统时域分析的MATLAB实现.d ...

  3. 李萍matlab实验报告,李萍, 张磊, 王垚廷. 基于Matlab的偏微分方程数值计算[J]. 齐鲁工业大学学报, 2017, 31(4): 39-43....

    ABSTRACT: 半导体是近代发现的一种新型材料,其导电性能介于导体与绝缘体之间,并且导电性也会随温度变化,是制作电子器件的重要材料,因此半导体器件问题的数值模拟也越来越重要.本文主要研究用Matl ...

  4. matlab实验7绘图操作绘制三维曲线,matlab上机习题6 MATLAB7.0三维绘图

    实验六MATLAB7.0三维绘图实验目的: ①掌握绘制三维图能形的方法: ②掌握图形修饰处理方法: ③知道图像处理方法,了解动画制作方法. 实验要求:给出程序和实验结果. 实验内容: 一.绘制三维曲线 ...

  5. matlab怎么取消科学计数法_在MATLAB中更改数据科学计数法

    数据显示格式可以由命令: vpa , format 等改变另外还有 fprintf 格式与 C 基本一致, format rational 最接近的有理数, format long 14 位小数, f ...

  6. matlab大津法函数,matlab 大津阈值分割【相关词_ 大津法阈值分割matlab】

    阈值法 阈值分割程序 Otsu Thresholding 赞(0) 踩(0) 收藏(0) 说明:大津法实现图像阈值分割的matlab源程序代码 (Otsu Thresholding Image sou ...

  7. OpenCV与图像处理学习七——传统图像分割之阈值法(固定阈值、自适应阈值、大津阈值)

    OpenCV与图像处理学习七--传统图像分割之阈值法(固定阈值.自适应阈值.大津阈值) 一.固定阈值图像分割 1.1 直方图双峰法 1.2 OpenCV中的固定阈值分割 二.自动阈值图像分割 2.1 ...

  8. matlab信号系统实验报告,信号与系统 MATLAB实验报告

    信号与系统 MATLAB 实验报告 <信号与系统>MATLAB 实验报告 院系: 专业: 年级: 班号: 姓名: 学号: 实验时间: 实验地点: 实验一 连续时间信号的表示及可视化 实验题 ...

  9. otsu阈值分割算法原理_大津法---OTSU算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

最新文章

  1. Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
  2. sql server 游标的使用
  3. SAP 大中华区第一季度业绩再创历史新高
  4. 扩容是元素还是数组_02 数组(附ArrayList源码分析)
  5. linux pandas教程_竞赛中的Docker使用教程
  6. identity_insert 如何改为on_十分钟教你如何快速提高Laya构建速度,还不快来康康?...
  7. maven 打包数据库加密_SpringBoot项目application.yml文件数据库配置密码加密的方法...
  8. 1125 斐波那契数列
  9. win10锁屏后默认1分钟进入睡眠状态的解决办法
  10. ctrypto-js中,DES解密的iv向量处理
  11. 传奇怎么设置不显示服务器,如何将传奇服务器未知神殿地图修改为不限制进出...
  12. 优锘:ThingJS-X济南广州线下研讨会教你做数字孪生
  13. windows和Linux常用命令
  14. Java实现求质数(素数)
  15. uni-app学习路线 - 计划
  16. Centos篇-Centos Minimal安装
  17. Html5-------合并单元格
  18. 小组项目具体分工情况(Web.ui相关)
  19. 导购提成怎么算_小公司怎么给销售算提成才合理?
  20. java支付宝签约功能

热门文章

  1. autowired注入为 mapper为null_兰新高铁为区域经济发展注入活力
  2. centos编译mysql5.6_centos7上编译安装mysql5.6
  3. mysql 强制读主库_laravel(lumen)配置读写分离后,强制读主(写)库数据库,解决主从延迟问题...
  4. 凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...
  5. mysql删除用户账号和密码_mysql添加、删除用户和授权用户
  6. 配置phoenix连接hbase_Phoenix视图映射
  7. Win8.1部署 .NET Framework 3.5 安装方式
  8. js页面传值(注意中文)
  9. Win7\xp添加虚拟网Microsoft Loopback Adapter
  10. hihoCoder 1092 : Have Lunch Together