原理

基本思想:
把一幅图像分成两部分C0,C1.使前景和背景与平均灰度的差别最大。这种差异用方差sigmaB表示。
所以目标就是求最大方差sigmaB对应的阈值T。

matlab代码

clc
clear
x=imread('rice.png');   a=x;subplot(211);  imshow(a,[]);  %[count x]=imhist(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);  %每个灰度对应的概率,i=1,对应灰度值为0(i-1)
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+1;
u=0;
for i=1:q   u=u+f(p+i)*(p+i-1);  %u是像素的平均值    ua(i)=u;           %ua(i)是前i+p个像素的平均灰度值  (前p个无取值)
end;   for i=1:q   w(i)=sum(f(1+p:i+p));  %w(i)是前i个像素的累加概率,对应公式中P0
end;   w=w+eps;  %对照sigmaB的公式写出目标函数。实际是遍历所有值
d=(w./(1-w)).*(ua./w-u).^2;
[y,tp]=max(d);  %可以取出数组的最大值及取最大值的点
th=tp+p;  subplot(212);
imshow(im2bw(a,th/255),[]);  title('自己的最大类间方差');subplot(211);
imshow(im2bw(x,graythresh(x)),[]);  title('matlab自带');

效果


可以看到自己编写的与matlab自带效果相同。

自动选择阈值--最大类间方差法(OTSU)原理及matlab实现相关推荐

  1. 图像分割 - 阈值处理 - 最大类间方差法(OTSU)

    目录 1. OTSU 介绍 2. 代码实现 1. OTSU 介绍 OTSU 大津法,也是最大类间方差算法 OTSU 算法的思想通过不同的阈值K,将图像的分为两个区域,一个是灰度值 0 <= k ...

  2. 基于OTSU最大类间方差法的ROI分割、提取图像中的形状特征--面积、周长、离心率、zernike矩

    分享一下最近学习的图像分类方面知识,整体的思路如下(之前的汇报ppt里截的) 把这个过程拆分几个部分共同学习一下吧 1.Otsu法原理 最大类间方差法OTSU是一种自适应的全局阈值确定的方法,根据灰度 ...

  3. 最大类间方差法(大津法OTSU)原理

    算法介绍 最大类间方差法是1979年由日本学者大津提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU,是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像分为前景和背景两个部分.当取最 ...

  4. 数字图像处理实验(六)|图像分割{阈值分割、直方图法、OTUS最大类间方差法(edge、im2dw、imfilter、imresize)、迭代阈值法、点检测}(附matlab实验代码和截图)

    文章目录 一.实验目的 二.实验原理 (一) 阈值分割 1. 直方图法 2.OTSU法(最大类间方差法)确定阈值 3. 迭代阈值法 4. 点检测 (二)边缘检测 三.实验内容 (一)阈值分割 1. 直 ...

  5. 【机器视觉学习笔记】大津法/Otsu最大类间方差法 最佳阈值处理(C++)

    目录 概念 C++源码 OtsuThreshold 主函数 效果 完整源码 平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文所用源码修改自C+ ...

  6. 自适应阈值分割(最大类间分割法 + OTSU)

    1.定义 最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标两部分,或者 ...

  7. Ostu最大类间方差法的C++实现

    一.Ostu的原理 最大类间方差法是由日本学者大津(Nobuyuki Ostu)在1979年提出的,该方法根据计算公式自动计算分割单域值,是一种根据灰度图像自动计算阈值的方法.它按照灰度图像的灰度值等 ...

  8. 图像二值化之最大类间方差法(大津法,OTSU)

    参考文章1:图像二值化与otsu算法介绍 参考文章2:python opencv cv2.threshold() (将固定级别的阈值应用于每个数组元素)ThresholdTypes 最大类间方差法(大 ...

  9. CUDA精进之路(五):图像处理——OTSU二值算法(最大类间方差法、大津法)

    引言 最近在做医疗设备相关的项目,故在项目中大量用到了各类图像分割的算法,为了在图像中分割出特定目标,用到的算法可以有很多,比如阈值分割,多通道分割,边缘分割以及一些前沿的组合分割.而对大多数图像来说 ...

  10. opencv与C++实现最大类间方差法(OTSU)进行图像二值化

    直接上代码,使用最大类间方差法进行二值化的函数 void threshold_otsu(Mat &mat, Mat &mat_thresh) //mat为输入图像,mat_thresh ...

最新文章

  1. AI医疗版App Store来了:GE发布“爱迪生魔盒”,集成各方医疗方案,李开复点赞...
  2. db2查询字段备注_通过逐浪数据精灵管理sqlserver数据表备注以及字段说明
  3. hystrix源码小贴士之Yammer Publisher
  4. axios在IE下的兼容性处理
  5. php 链接文件名_7、php-fpm进程管理
  6. 操作系统04进程同步与通信
  7. python手枪_Python入门,爬虫训练——枪械查询
  8. 企业级账号 版本更新总结
  9. Android自动化测试之使用java调用monkeyrunner(补充篇)
  10. 使用Ueditor点击上传图片时显示延迟的问题
  11. 简单批处理内部命令简介(转)
  12. 【OpenCV学习笔记】【函数学习】四(origin+imageData+cvcopy()函数+CvMemStorage 类型+CvPoint类型)
  13. python 单向链表逆序_python实现单链表反转(经典笔试题)
  14. java面向接口编程思想
  15. 怎么把图片文字转换成文字
  16. IAR 设置程序下载地址
  17. android 阿里hotfix,Android 热修复方案--阿里百川HotFix
  18. 听《正面管教》,论如何教育孩子
  19. 用malloc动态申请一个二维数组的三种方法
  20. 微信表情图像代表什么意思_微信里的表情每个头像代表什么意思

热门文章

  1. mindoc升级总结
  2. 简单易用的运动控制卡(八):直线插补和手轮运动
  3. VS使用教程(使用visual studio编写C语言程序),编写c的入门教程
  4. 【最强大脑】天才数学家陶哲轩亲授25条职业建议
  5. 标签打印软件如何设计正反面打印模式
  6. 硬件基础之模电数电电路(一)
  7. 修改django后台管理员密码
  8. 2022-08-22 步进电机驱动程序
  9. hadoop(二)-hadoop原理及架构
  10. STM32单片机远程升级