前言

图像阈值处理在图像分割中处于核心地位!本节将重点介绍一些常见的阈值处理方法。

一、基本的全局阈值处理

选取阈值往往是通过直方图来选择的,一方面我们可以人为的设置一个阈值进行一次二值化处理达到全局阈值处理的目的,但这样的阈值处理往往效果并不好;另一方面我们也可以先人为的设置一个阈值,之后通过迭代的方法得到最合适的阈值再进行二值化处理,这种方法显然比前者要更加适合。

二、使用步骤

1.为全局阈值选择一个初始值T(通常我们选择矩阵的均值作为初始值)

2.使用T分割图像,产生两组像素:所有的灰度值均大于T的像素组G1以及所有的灰度值均小于T的像素组G2。

3.分别计算G1和G2中像素的平均灰度值m1,m2

4.令T=(m1+m2)/2

5.重复步骤234直到得到的相邻的T的差值小于预定义的▲T值为止

6.使用imb2bw进行图像分割,若为8比特图像则应采用T/255

三、代码及工作区展示

I1=imread('zhiwen.tif');
count=0;
T=mean2(I1);%求矩阵的均值
done =false;
%以下为迭代过程
while ~donecount=count+1;g=I1>T;Tnext=0.5*(mean(I1(g))+mean(I1(~g)));%分别计算两个区域各自的像素的灰度平均值done =abs(T-Tnext)<0.5;%设置预定义值为0.5T=Tnext;
end
g=im2bw(I1,T/255);%图像为8比特
subplot(131),imshow(I1),title('原图');
subplot(132),imhist(I1),title('原图直方图');
subplot(133),imshow(g),title('全局阈值分割图');

四、结果展示及分析

根据图像结果可以看到最终得到的全局阈值处理图像相较于原本图像对比度更加明显,也更加清晰,阈值处理达到了预期效果。

根据工作区我们可以看到最终T=160.0102,count=4,这证明我们一共进行了四次迭代才满足了预定义值0.5,最终的T值在直方图中来看确实将两个峰值左右分开,如果采用肉眼观察直接确定几乎是不可能取到这么合适的值的。

五、Otsu方法进行最佳全局阈值处理

在原图的直方图分布并没有显著的波谷,或者说仅存在一波峰甚至没有波峰时,采用上述的方法进行迭代分类效果并不理想,这个时候我们可以采用Otsu方法进行最佳全局阈值处理。Otsu方法采用了类间方差最大化的思想,也就是说方差越大,越接近于正确分割图像的阈值,而这种最佳测度完全基于直接由图像直方图得到的参数。

使用matlab中的工具箱函数graythresh可以实现Otsu方法进行最佳全局阈值处理,语法为:

[T,SM]=graythresh(f)

其中f是输入的原图,T就是我们希望得到的阈值,SM是可分性测度。最后我们仍然采用im2bw进行图像分割。

六、代码展示

I1=imread('cell.tif');
%使用Otsu方法分割图像
[T,SM]=graythresh(I1);%采用Otsu方法得到阈值T
I2=im2bw(I1,T);%按照给定的阈值T进行图像分割
subplot(221),imshow(I1),title('原图');
subplot(222),imhist(I1),title('原图直方图');
subplot(223),imshow(I2),title('Otsu方法阈值图');%使用基于全局阈值处理
count=1;
T=mean2(I1);
done=false;
while ~donecount=count+1;g=I1>T;Tnext=0.5*(mean(I1(g))+mean(I1(~g)));done=abs(T-Tnext)<0.05;T=Tnext;
end
I3=im2bw(I1,T/255);
subplot(224),imshow(I3),title('基于全局的阈值处理图');

在这里我们对同样一幅图像分别进行了基于全局的阈值处理和Otsu方法的最佳全局阈值处理进行比较。

七、结果展示及分析

可以看到Otsu方法的分割明显要优于基本的全局阈值处理,Otsu方法成功地将细胞边界分割了出来,实现了图像分割的预定目标。

根据图像直方图我们可以发现,在没有明显的波谷时,采用基本的全局阈值处理并不能得到预想的图像分割效果,这是因为阈值T不能通过迭代很好的确定导致的,这时我们就要采用Otsu方法进行图像分割。


总结

阈值处理在图像分割中占有非常重要的地位,一般而言我们可以选择的阈值处理方式有两种,分别是基本的全局阈值处理和利用Otsu方法进行最佳全局阈值处理。前者采用了迭代的思想进行阈值处理,后者则利用了方差最大化的思想进行处理。当图像直方图中具有明显的波谷或者说波峰之间的分界十分明显时,采用基本的全局阈值处理往往可以很好的解决问题;但是如果直方图不能满足上述需求,则应采用Otsu方法进行最佳的全局阈值处理。

基本的全局阈值处理Otsu方法进行最佳全局阈值处理相关推荐

  1. 数字图像处理11:阈值分割(基本全局阈值处理,Otsu 的最佳全局阈值,图像平滑改善全局阈值处理,图像分块的可变阈值)

    阈值分割 从背景中提取物体的一种明显方法是,选择一个将这些模式分开的阈值 T.然后, f ( x , y ) > T f(x,y)>T f(x,y)>T的任何点 (x, y) 称为个 ...

  2. 基于梵·高《向日葵》的 图像阈值处理专题(二值处理、反二值处理、截断处理、自适应处理及Otsu方法)【Python-Open_CV系列(六)】

    基于梵·高<向日葵>的图像阈值处理专题(二值处理.反二值处理.截断处理.自适应处理及Otsu方法)[Python-Open_CV系列(六)] 文章目录  

  3. opencv阈值图像Threshold方法

    图像阈值 固定阈值,自适应阈值,Otsu 二值化等 全局阈值和局部阈值 一.图像二值化 定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效 ...

  4. OpenCV-Python学习笔记(八):图像阈值:简单阈值、自适应阈值、 Otsu's阈值

    目标 • 本节你将学到简单阈值,自适应阈值, Otsu's 二值化等 • 将要学习的函数有 cv2.threshold, cv2.adaptiveThreshold 等. 1.简单阈值 与名字一样,这 ...

  5. Ostu(大津法)二值化图像算法/最佳全局阈值

    介绍 最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津 法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间的类间方差 越大,说明 ...

  6. 图像分割 - 阈值处理 - 多阈值处理(OTSU)

    目录 1. 多阈值处理介绍 2. 代码讲解 3. 完整代码 1. 多阈值处理介绍 之前介绍的都是全局单个阈值对图像的分割.固定阈值法,阈值是人工根据灰度直方图的波谷进行设置的.全局阈值法,根据不停的迭 ...

  7. 二维otsu算法python_【OpenCV+Python】图像阈值与OTSU算法

    图像阈值 自本教程开始,我们已经进入了图像处理的一些基本操作的学习,所谓的图像阈值,就是图像二值化.什么是二值化?就是只有0和1,没有其他的.在OpenCV的图像里面,二值化表示图像的像素为0和255 ...

  8. 张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘。

    张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘. 人工智能不仅要复现人类的大脑,还要构建容纳智能大脑的身体,机器人将是人工智能的完全体.8月7日-8月9日, ...

  9. 张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘-1。

    人工智能不仅要复现人类的大脑,还要构建容纳智能大脑的身体,机器人将是人工智能的完全体.8月7日-8月9日,2020年全球人工智能和机器人峰会(简称"CCF-GAIR 2020")在 ...

最新文章

  1. linux文件创建、查看、编辑命令
  2. 操作系统:体验Windows 11,不到1M的小工具来了!
  3. linux下添加用户的命令--useradd
  4. Codeforces Round #364 (Div. 2)C. They Are Everywhere(尺取法)
  5. 力扣883.三维体投影面积
  6. jws webservice 跳过https认证_基于OAuth2的OIDC (OpenId Connect)身份认证
  7. 牵引力教育推荐最先进的5大敏捷PHP开发框架
  8. Verify_Execute 验证SQL语句执行结果
  9. 一般试卷的纸张大小是多少_国际A4纸尺寸大小是多少?标准A4纸像素分辨率换算方法...
  10. docker集群部署:第3部分:服务
  11. [Android] AsyncTask详解
  12. uva11549Calculator Conundrum
  13. php arraymap 匿名函数,结合代码详细为你讲解,php中的array_map,array_walk以及匿名函数...
  14. Android涂鸦画板原理详解——从初级到高级(一)
  15. 基于Vue Konva的canvas图片放大缩小
  16. 冰达ROS机器人使用-实现slam建模、自主导航、避障
  17. 手机芯片基带芯片及服务器芯片有什么区别,手机射频电路知识干货,射频芯片和基带芯片又是什么关系?...
  18. unity之环状图片轮播
  19. 80%学生的困惑,学完C/C++之后学什么?
  20. 操作系统笔试面试笔记总结

热门文章

  1. 微信小程序登录获取不到头像和昵称解决办法!
  2. 学习笔记——vue3.0中的性能优化
  3. 如何进行产品优化迭代
  4. [转载]单片机习题和试题库之六  读程序(附参考答案)
  5. 怎么区分有符号数和无符号数
  6. [Unity教程]合理使用Unity的AssetStore
  7. 华中科技大学与亮风台成立增强现实联合实验室
  8. 小觅智能 | VINS 学习笔记
  9. 退役前的做题记录1.0
  10. 读书笔记--高性能MySQL--15备份与恢复