数字图像处理课程论文

基于MATLAB的图像阈值分割技术

摘要:本文主要针对图像阈值分割做一个基于MATLAB的分析。通过双峰法,迭

代法以及OUTS法三种算法来实现图像阈值分割,并且就这三种算法做了一定的分析和比较,在加椒盐的图片上同时进行三种实验,做出比较,最终得出实践结论。

关键词:图像分割 MATLAB 阈值分割 算法 引言:图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准,图像阈值分割即是其中的一种方法。 阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。

1、阈值分割思想和原理

若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。

在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的

设图像为f(x,y),其灰度集范围是[0,L],在0和L之间选择一个合适的灰度阈值T,则图像分割方法可由下式描述:

f

g(x,y){1(x,y)?T0f(x,y)?T

这样得到的g(x,y)是一幅二值图像。

(一)原理研究

图像阈值分割的方法有很多,在这里就其中三种方法进行研究,双峰法,迭代法,以及OUTS法。

方法一:双峰法 方法原理:

双峰法是一种简单的阈值分割方法。双峰法先将原图转为灰度图,然后将灰度图转为灰度直方图,灰度直方图就是灰度级的像素数ni与灰度i的二维关系,它反映了一幅图像上灰度分布的统计特性,在MATLAB中使用函数imhist

数字图像处理课程论文

来实现。如果得到的灰度直方图呈现明显的双峰状,则选取双峰之间的谷底所对应的灰度级作为阈值分割。

方法二:迭代法 方法原理:

开始时候选择一个阈值作为初始估计值,然后按着某种策略不断得改进这个估计值,直到满足给定的准则为止。

(1) 求出图像最大灰度值Max和最小灰度值Min,初始阈值估计值

T0.=(Max+Min)*0.5.

(2) 用T0将图像分割为目标和前景。图像分成两组像素:Z1由所有灰度值大

于或等于T0的像素组成,而Z0由所有灰度值小于T0的像素组成。 (3) 分别求出两者区域中的所有像素计算平均灰度值a1和a2。 (4) 计算新的阈值T1=(a1+a2)*0.5.

如果|Ti+1-Ti|<0.5,则退出循环,Ti+1即为所求阈值;否则,将Ti+1复制给Ti,重复(2)~(5)。

方法三:OTSU法 方法原理 OTUS又称:最大类间法,该算法是在使类间方差最大的自动确定阈值的方法,

是在判决分析最小二乘法原理的基础上推到得出的,其算法比较简单,是一种方便可行的阈值选取方法。

设原始灰度图像灰度级范围为[0,L],灰度级为i的像素点数为ni,则图像的全部像素数为:

N?no?n1?......?nL?1

?Pi?0L?1i?1

把图像中的像素按灰度值用阈值t分成两类C0和C1,由灰度值在[0,t]之间的像素组成,由灰度值在[t+1,L-1]之间的像素组成,对于灰度分布概率,整幅图的均值为

ut??iPi

i?0L?1因此,C0和C1的均值为:

μ0??ipi?otiwo?μ?t?w?t?μ1?其中

ori?t?1?ipt0L-1iμT?μ?t??w11?w?t?i

w?P(C)??p?w?t?i?0

w?P(C)??p?1?w(t)1r1i?t?1iL?1上面三式可得

数字图像处理课程论文

ut= w0u0+ w1u1 类间方差定义为:

σ

算法:

2B?w0(μ0?μT)?w1(μ0?μT)?w0w1(μ1?μo)222

让t在[0,L-1]范围一次取值,使类间方差最大的他值即为OUTS法的最佳阈值。

MATLAB工具箱提供的graythresh函数求取阈值。

1、双峰法图像阈值分割matlab code:

I=imread('cat.jpeg'); I=rgb2gray(I); imhist(I) 直方图:

说明:根据双峰法原理,观察到灰度图像直方图呈现明显的双峰状,则选取双峰之间的谷底所对应的灰度级作为阈值分割。如上图,选取230作为分割点。

I=imread('cat.jpeg'); I=rgb2gray(I); figure

subplot(1,2,1) imshow(I);

[width,height]=size(I); title('原图')

数字图像处理课程论文

for i=1:width for j=1:height if(I(i,j)<230) RC(i,j)=0; else

RC(i,j)=1; end end end

subplot(1,2,2) imshow(RC)

title('双峰法图像阈值分割处理效果图')

此图为C=230

此图为C=150

matlab中图像的阈值分割,基于MATLAB的图像阈值分割技术汇总相关推荐

  1. 直流斩波电路在matlab中的建模与仿真,基于MATLAB/Simulink的直流斩波电路分析

    摘要:直流斩波电路是将固定直流电压变换成可变直流电压的电路,广泛应用于开关电源及直流电动机驱动中.文章分析了直流斩波电路的设计原理,并基于MATLAB/Simulink软件,搭建了升.降压直流斩波电路 ...

  2. matlab中电压幅值不对,基于MATLAB的SPWM电压型逆变器的仿真与分析

    龙源期刊网 http://www.doczj.com/doc/b1455622f6ec4afe04a1b0717fd5360cba1a8da1.html 基于MATLAB的SPWM电压型逆变器的仿真与 ...

  3. matlab中建立水火电站模型,基于MATLAB的漫水湾水电厂电气主接线系统建模与仿真...

    详细介绍: 关于"基于MATLAB/Simulink的漫水湾电厂电气主系统仿真分析"的介绍 随着电力事业的发展,发电设备向着高参数.大容量.高度自动化方向发展.电气主系统的正常运行 ...

  4. matlab中滤波器设计与实现,基于MATLAB的IIR滤波器设计与实现

    描述 由于电力系统中非线性电子元件的大量使用,使得谐波污染问题日益严重,当谐波含量超过一定限度时就可能对电网和用户造成极大的危害,且增加线路损耗,降低线路传输能力,干扰通信信号等.因此,应该积极寻找一 ...

  5. matlab中数字信号处理zf均衡器,基于MATLAB的数字滤波器和数字均衡器的设计.doc

    摘要:在数字化信息技术的时代,数字化电子产品所产生的图像会模糊.声音会带有杂音等,在实时数字信号处理过程中,迫切需要对目标信号进行处理,以满足用户对信号的要求. 本文使用MATLAB设计不同类型的滤波 ...

  6. matlab中感应电机用哪种,基于MATLAB软件的感应电机3种非线性控制方法的比较

    0引言感应电机是应用比较广泛的一种电动机,它结构简单.易于维护而且可靠性高.但是,它的调速性能较差,对其控制方法的改进一直是控制界研究的热点及难点问题[1-3].随着非线性控制理论和计算机技术的发展, ...

  7. matlab中值滤波法算法,基于MATLAB中值滤波算法的优化与实现

    总第238期2014年第4期 舰 船 电 子 工 程 Ship Electronic Engineering Vol.34No.437 基于 MATLAB中值滤波算法的优化与实现* 赵建春 刘力源 ( ...

  8. matlab中洛伦兹拟合,基于MATLAB洛伦兹线型非线性拟合算法实现

    [1] Yao Hua. Research on Remote Sensing of Methane Based Tunable Diode Laser Absorption Spectroscopy ...

  9. 在MATLAB中如何读取心音信号,基于Matlab的心音信号分析比较研究_问答库

    随着现代社会物质生活水平的改善,心血管疾病呈逐年上升趋势,其导致的死亡率已位居各类疾病之首,成为人类健康的最大威胁.心音是心脏及心血管系统机械运动状况的反映,其中包含着心脏各个部分本身及相互之间作用的 ...

  10. matlab怎么求imf图,MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据

    题目: MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据 EMD分解程序我就不给了,网上都是一样的. 例: M = length(imf); N = length(x); c = ...

最新文章

  1. Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
  2. oracle的高级分组函数,group by 高级函数使用
  3. log4net使用详解
  4. 海量数据处理:BitMap
  5. 训练作用_不同振幅的振动训练对身体的作用
  6. java new关键字
  7. 快速开平方取倒数的算法
  8. 21天Jenkins打卡Day9-保留构建
  9. 【ACM】hdu_1276_士兵队列训练问题_201308131032
  10. 发送HTTP请求的新姿势
  11. js上传图片时添加水印
  12. 工业工程F37工业工程IE管理
  13. 【微信数据迁移】微信数据怎么恢复到另一部手机
  14. python连连看小游戏_python tkinter实现连连看游戏
  15. w ndows 10画图,如何在Windows 10中打开和使用画图
  16. java繁体转简体包,java繁体转简体
  17. Squid在Windows平台搭建代理服务器
  18. CF235C Cyclical Quest(SAM)
  19. 编程中的源代码是什么?
  20. java 栈队列区别是什么意思_Java实现数据结构栈stack和队列Queue是什么?

热门文章

  1. BOA蝴蝶优化算法matlab仿真,测试20个目标函数
  2. 近期开发完成一套Skin库(SkinSharp)
  3. 【系统架构设计师】计算机组成与体系结构 ① ( 计算机组成 | CPU | 存储器 | 总线 | IO 外设 | CPU 组成 | 运算器 | 控制器 )
  4. OpenCV-Python调整图像对比度和带文字白纸照片背景漂白方法
  5. [HBase基础]-- spark创建hbase表(非分区表)
  6. 小默在职场:新媒体运营该怎么写简历?40份高质量简历模板帮你轻松解决
  7. MacOS Big Sur 11.3.1 (20E241) With Clover 5134/OC 0.6.9/PE 三分区原版黑苹果镜像下载
  8. 十二种可吸筹的技术形态
  9. 音视频OSD——修改叠加在yuv420p图像上信息的颜色
  10. ZZZZ-ScriptManger