阈值分割技术

合集下载

图像的阈值分割及边缘检测技术

图像的阈值分割及边缘检测技术

数字图像处理实验报告题目:图像的阈值分割及边缘检测技术班级:姓名:学号:图像的阈值分割及边缘检测技术一、实验目的1、了解图像的分割技术,掌握图像的全局阈值分割技术并通过MATLAB实现;2、了解图像的边缘检测,掌握梯度算子图像边缘检测方法。

二、实验内容1、基于直方图的全局阈值图像分割方法;2、Edge命令(roberts,perwitt,sobel,log,canny),实现边缘检测。

三、实验原理1、全局阈值是最简单的图像分割方法。

其中,直方图法的原理如下:想做出图像的直方图,若其直方图呈双峰且有明显的谷底,则可以讲谷底点所对应的灰度值作为阈值T,然后根据该阈值进行分割,九可以讲目标从图像中分割出来。

这种方法是用于目标和背景的灰度差较大且直方图有明显谷底的情况。

2、用于边缘检测的梯度算子主要有Roberts算子、Prewitt算子、Sobel算子。

这三种检测算子中,Roberts算子定位精度较高,但也易丢失部分边缘,抗噪声能力差,适用于低噪声、陡峭边缘的场合。

Prewitt算子、Sobel算子首先对图像做平滑处理,因此具有一定的抑制噪声的能力,但不能排除检测结果中的虚假边缘,易出现多像素宽度。

四、实验步骤1、全局阈值分割:①读取一张图像;②生成该图像的直方图;③根据直方图双峰产生的低谷估计阈值T;④依次读取图像各个点的像素,若大于阈值,则将像素改为255,若小于阈值,则将该像素改为0;实验代码如下:I=imread('cameraman.tif'); %读取一张图像subplot(221);imshow(I); %显示该图像subplot(222);imhist(I); %生成该图像的直方图T=60; %根据直方图估计阈值T为60[m,n]=size(I); %取图像的大小为【m,n】for i=1:m %依次读取图像各个点的像素,若大于阈值,则将像素改为255,若小于阈值,则将该像素改为0for j=1:nif I(i,j)>=T I(i,j)=255;else I(i,j)=0;endendendsubplot(223);imshow(I); %显示全局阈值分割后的图像2、图像的边缘检测①读取一张图像;②分别使用roberts算子检测、Prewitt算子检测、sobel算子检测、log算子检测、canny算子检测对图像进行处理③输出实验结果图像实验代码如下:I=imread('cameraman.tif'); %读取一张图像subplot(231);imshow(I);title('原图像');BW1=edge(I,'roberts'); %进行Roberts算子边缘检测,门限值采用MATLAB默认值BW2=edge(I,'prewitt'); %进行prewitt算子边缘检测,门限值采用MATLAB默认值BW3=edge(I,'sobel'); %进行sobel算子边缘检测,门限值采用MATLAB默认值BW4=edge(I,'log'); %进行log算子边缘检测,门限值采用MATLAB默认值BW5=edge(I,'canny'); %进行canny算子边缘检测,门限值采用MATLAB默认值subplot(232);imshow(BW1,[]);title('进行Roberts算子边缘检测');subplot(233);imshow(BW2,[]);title('进行prewitt算子边缘检测');subplot(234);imshow(BW3,[]);title('进行spnel算子边缘检测’);subplot(235);imshow(BW4,[]);title('进行log算子边缘检测');subplot(236);imshow(BW5,[]);title('进行canny算子边缘检测');五、实验结果1、图像全局阈值分割源图像直方图全局阈值分割后的图像2、图像的边缘检测六、实验心得1、通过本次实验,我学习到利用MATLAB进行图像的全局阈值分割,其方法是通过图像的直方图估计出阈值再进行分割。

图像阈值分割及去噪的实现

图像阈值分割及去噪的实现
去噪效果与细节保留的平衡
在去噪过程中,如何平衡去噪效果和细节保留是一大挑战。过度去噪 可能导致图像细节丢失,而保留细节又可能无法有效去除噪声。
计算效率
现有的阈值分割和去噪算法往往计算复杂度较高,难以满足实时处理 的需求。
适应性
对于不同类型的图像(如自然图像、医学图像等),现有的方法可能 无法达到理想的分割和去噪效果。
常用的阈值分割算法有
全局阈值分割、自适应阈值分割、Otsu阈值分割等。
02 去噪技术
去噪的基本概念
01
02
03
去噪
从带噪声的信号中提取出 纯净信号的过程。
噪声
对信号的干扰,通常表现 为图像中的随机像素值变 化。
噪声来源
图像获取、传输过程中可 能引入的随机误差或异常 值。
去噪的原理
滤波
通过数学运算对图像像素 值进行平滑处理,减少噪 声。
阈值分割实例
灰度阈值分割
将灰度图像转换为二值图像,通 过设定一个阈值将像素点分为两 类,通常用于突出图像的边缘或
特定区域。
Otsu阈值法
基于灰度直方图的统计特性,自 动确定最优阈值进行分割,适用 于背景和前景有较大灰度差异的
情况。
自适应阈值分割
根据图像局部的灰度分布动态确 定阈值,能够更好地处理光照不
THANKS FOR WATCHING
感谢您的观看
图像阈值分割及去噪的实现
contents
目录
• 图像阈值分割 • 去噪技术 • 阈值分割与去噪的结合 • 实例分析 • 结论与展望
01 图像阈值分割
阈值分割的基本概念
01
阈值分割是一种简单有效的图像 分割方法,通过设定一个阈值, 将图像的像素点分为两类或多类 ,从而实现图像的分割。

数字图像处理——阈值分割

数字图像处理——阈值分割
level=graythresh(I);
BW=im2bw(I,level);
figure
imshow(BW)
%global threshold
for i=1:width
for j=1:height
if(I(i,j) < 80)
BW1(i,j)=0;
else
BW1(i,j)=1;
end
end
end
figure
title('分水岭方法')
Sobel、Prewitt、Roberts等算子的边缘提取算法。
a=imread('d:\skull.png');
bw1=edge(a,'sobel');
bw2=edge(a,'prewitt');
bw3=edge(a,'roberts');
bw4=edge(a,'log');
[x,y]=meshgrid(lims(1):lims(2));
bw1=sqrt((x-center1).^2 + (y-center1).^2) <= radius;
bw2=sqrt((x-center2).^2 + (y-center2).^2) <= radius;
bw=bw1 | bw2;
figure, imshow(bw,'InitialMagnification','fit'), title('二进制图像')
计算机科学与通信工程学院
实验报告
课程
图像处理
实验题目
图像分割
1.引言
图像分割是一种重要的图像分析技术。在对图像的研究和应用中,人们往往只对图像中的特定某一部分感兴趣,他们一般对应着图像中某些特定的区域。为了识别它们,可以把他们从图像中分离提取出来。

阈值分割学习.pptx

阈值分割学习.pptx

o )
P
P1(Z)
E1(Zt)
P2(Z) E2(Zt)
Zt
Z
从前面可以看出,假如:
① 图像的目标物和背景象素灰度级概率呈正态分布,
② 且偏差相等(σ12 = σ22), ③ 背景和目标物象素总数也相等(θ=1/2),
则这个图像的最佳分割阈值就是目标物和背景象素灰度级
两个均值的平均。
第16页/共25页
Otsu法是一种使类间方差最大的自动确定阈值的方法,该方法具有 简单、处理速度快的特点。
Otsu法阈值分割的基本思想是:
设图像像素为N,灰度范围为[0,L-1],对应灰度级i的像
素为ni,概率为: pi ni / N
选定阈值T把图像中的像素分成两个灰度级C0和C1,C0由灰度值在
[0,T]之间的像素组成,C1由灰度值在[T+1,L-1]之间的像素组成,由
T
第9页/共25页
2.迭代阈值选择
迭代阈值选择方法的基本思想是:
开始时选择一个阈值作为初始估计值,然后按照某种策略不断的改进 这一估计值,直到满足给定的准则为止。 迭代阈值选择方法的步骤:
1. 选择一个初始估计值T(建议初始估计值为图像中最大亮度值和最 小亮度值的中间值)。
2. 使用T分割图像。这会产生两组像素:亮度值≥T的所有像素组成 的G1,亮度值<T的所有像素组成的G2。
灰度分布概率,整个图像的均值为:T
L 1
i pi
i0
C0和C1的均值为:0
T i0
ipi
0
1Байду номын сангаас
L1 ipi
iT 1
1
其中:
T
0 pi i0
L1

阈值分割技术

阈值分割技术

摘要图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。

图像分割是把图像中有意义的特征区域或者把需要的应用的特征区域提取出来。

阈值分割是一种简单有效的图像分割方法。

它对物体与背景又较强对比的图像分割特别有效,所有灰度值大于或等于阈值的像素被判决属于物体。

为常见的阈值分割方法有全局阈值、自适应阈值。

最佳阈值的选择有直方图技术、最大类间方差法(OTSU)、迭代法。

关键词:图像分割,阈值分割,灰度值,最佳阈值1 MATLAB简介及其应用MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB 产品族可以用来进行以下各种工作:1. 数值分析2. 数值和符号计算3. 工程与科学绘图4. 控制系统的设计与仿真5. 数字图像处理技术6. 数字信号处理技术7. 通讯系统设计与仿真8. 财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

Matlab的特点如下:1.此高级语言可用于技术计算2.此开发环境可对代码、文件和数据进行管理3.交互式工具可以按迭代的方式探查、设计及求解问题4.数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等5.二维和三维图形函数可用于可视化数据6.各种工具可用于构建自定义的图形用户界面7.各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成8.不支持大写输入,内核仅仅支持小写MATLAB 有出色的图形处理功能:向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

阈值分割原理

阈值分割原理

阈值分割原理阈值分割是一种数字图像处理中常用的像素分割方法,其原理主要是基于图像灰度值的统计特性。

其思路是分别统计图像中不同灰度级别的像素个数,通过确定一个灰度值作为阈值,将图像中的像素分成两类,进而实现对图像的分割。

阈值分割的基本原理是通过将图像灰度值分为两个区间,从而将灰度低于或高于阈值的像素分为两类,从而实现图像的二值化处理。

本文将对阈值分割的基本原理、常用的实现方法以及应用进行全面的介绍。

阈值分割的基本原理阈值分割的基本原理是将图像中的像素分为两个部分,一部分为灰度值大于等于阈值的像素,另一部分为灰度值小于阈值的像素。

此时,我们可以将分割出来的灰度值较低的像素赋值为0,灰度值较高的像素赋值为1,从而将其转化为二进制图像。

这种方法通常用于物体检测、图像分割、OCR等领域,其中图像分割是其中应用最为广泛的领域之一。

在将图像进行阈值分割时,需要找到一个合适的阈值。

阈值可以是任何一个位于图像灰度值范围之内的值。

阈值分割方法需要根据具体的场景进行灰度值的筛选,通常可以选择采用迭代法、聚类法、最大间隔法和形态学方法等实现。

1. 迭代法迭代法通常是一种较为常见的方法。

这种方法的基本思路是:先在图像的灰度值范围内随机选取一个阈值,然后对目标二值化图像进行处理,将灰度大于或等于该阈值的像素设为前景像素(白色),将小于该阈值的像素设为背景像素(黑色)。

接着,可以计算出前景和背景的平均灰度值,将其作为新的阈值。

将新阈值作为该算法的输入,重复执行该算法,直到图像中的前景像素和背景像素稳定不变为止。

2. 聚类法聚类法是一种常用的阈值寻找方法。

该方法基于聚类分析的思想,将图像中的像素分为多个簇。

这些簇是按照图像灰度值进行排序的,每个簇的中心都对应一种不同的灰度值。

在这种情况下,我们可以寻找显著区分不同灰度值区间的簇,以确定阈值。

3. 最大间隔法最大间隔法是一种基于统计学原理的方法,它可以有效地找到分离前景像素和背景像素的最佳阈值。

阈值分割方法

阈值分割方法

阈值分割方法1. 什么是阈值分割?阈值分割是将图像根据其灰度级分割成两个或多个部分的过程。

这个过程中,我们选择一个阈值来确定像素应该属于哪个类别(前景或背景)。

2. 常见的阈值分割方法有哪些?常用的阈值分割方法包括全局阈值法、局部阈值法(如Otsu阈值法)、自适应阈值法、多阈值分割法等。

3. 全局阈值法是如何工作的?全局阈值法首先计算出图像的灰度平均值作为初始阈值,然后迭代地计算前景和背景的平均灰度值并重新计算阈值,直到阈值收敛为止。

4. 局部阈值法是如何工作的?局部阈值法将图像分割成许多小区域,然后为每个区域选择不同的阈值。

这可以让我们在处理具有不同灰度级的图像时获得更好的结果。

5. Otsu阈值法是如何工作的?Otsu阈值法是一种自适应阈值方法,它通过寻找使类间差异最大的阈值来确定图像的二值化阈值。

6. 自适应阈值法是如何工作的?自适应阈值法将图像分割成多个子区域,并根据每个子区域的统计特性来确定二值化阈值。

这可以解决具有大量噪声的图像的问题。

7. 多阈值分割法是如何工作的?多阈值分割法将图像分成多个部分,并针对每个部分选择不同的阈值。

这在处理具有多个目标或复杂纹理的图像时特别有用。

8. 如何选择最佳阈值?选择最佳阈值的方法取决于我们所处理的图像以及我们所需的分割质量。

通常,我们可以使用像Otsu阈值法这样的自适应方法,或者手动测试不同阈值的效果以找到最佳的阈值。

9. 阈值分割的优缺点是什么?阈值分割的主要优点是简单快速,并且容易实现。

它不能很好地处理具有复杂纹理或多个目标的图像,并且对图像中的噪声比较敏感。

10. 阈值分割在哪些领域应用广泛?阈值分割在医学影像处理、计算机视觉、机器人技术、数字图像处理等领域应用广泛。

在医学领域,阈值分割用于提取CT和MRI扫描中的病变区域。

在计算机视觉中,阈值分割可以用于滤除图像背景或提取目标区域。

在机器人技术中,阈值分割可用于机器人导航和自动化应用等方面。

迭代法阈值分割

迭代法阈值分割

迭代法阈值分割
迭代法阈值分割是一种常用的图像分割方法,它通过不断迭代计算图像的阈值,将图像分为不同的区域,从而实现图像的分割。

该方法的优点是简单易懂,计算速度快,适用于各种类型的图像分割。

迭代法阈值分割的基本原理是将图像的灰度值分为两个区域,然后计算两个区域的平均灰度值,将平均灰度值作为新的阈值,再将图像分为两个区域,如此循环迭代,直到满足一定的条件为止。

具体的步骤如下:
1. 初始化阈值T,将图像分为两个区域,分别为前景区域和背景区域。

2. 计算前景区域和背景区域的平均灰度值,将平均灰度值作为新的阈值T。

3. 将图像根据新的阈值T分为两个区域,分别为前景区域和背景区域。

4. 判断新的阈值T和旧的阈值T'之间的差值是否小于一定的阈值,如果小于则停止迭代,否则继续迭代。

5. 输出分割结果。

迭代法阈值分割的优点是计算速度快,适用于各种类型的图像分割。

但是该方法也存在一些缺点,例如对于复杂的图像,分割效果可能
不理想,需要进行后续的处理。

此外,该方法对于阈值的选择比较敏感,需要根据具体的图像进行调整。

迭代法阈值分割是一种简单易懂、计算速度快的图像分割方法,适用于各种类型的图像分割。

在实际应用中,需要根据具体的图像进行调整,以达到最佳的分割效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要图像分割是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。

图像分割是把图像中有意义的特征区域或者把需要的应用的特征区域提取出来。

阈值分割是一种简单有效的图像分割方法。

它对物体与背景又较强对比的图像分割特别有效,所有灰度值大于或等于阈值的像素被判决属于物体。

为常见的阈值分割方法有全局阈值、自适应阈值。

最佳阈值的选择有直方图技术、最大类间方差法(OTSU)、迭代法。

关键词:图像分割,阈值分割,灰度值,最佳阈值1 MATLAB简介及其应用MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB 产品族可以用来进行以下各种工作:1. 数值分析2. 数值和符号计算3. 工程与科学绘图4. 控制系统的设计与仿真5. 数字图像处理技术6. 数字信号处理技术7. 通讯系统设计与仿真8. 财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

Matlab的特点如下:1.此高级语言可用于技术计算2.此开发环境可对代码、文件和数据进行管理3.交互式工具可以按迭代的方式探查、设计及求解问题4.数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等5.二维和三维图形函数可用于可视化数据6.各种工具可用于构建自定义的图形用户界面7.各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成8.不支持大写输入,内核仅仅支持小写MATLAB 有出色的图形处理功能:向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

2 图像阈值分割分析对图像进行研究和应用时,人们往往对图像中的某些部分感兴趣,这些部分常被称为目标或对象(object )。

图像处理的重要任务就是对图像中的对象进行分析和理解。

在图像分析中,输出结果是对图像的描述、分类或其他结论,而不再像一般意义的图像处理那样——输出也是图像。

图像分割是将数字图像分成互不重叠的区域并提取出感兴趣目标的技图像分割算法一般是基于灰度的两个性质之一:不连续性和相似性。

第一个性质的应用是基于灰度的不连续变化来分割图像。

第二个性质的主要应用是根据事先制定的准则将图像分割为相似的区域。

这两种方法都有各自的优点和缺点。

图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。

图像阈值分割即是其中的一种方法。

图像分割也可理解为把图像中有意义的特征区域或者需要应用的特征区域提取出来,这些特性区域可以是像素的灰度值、物体轮廓曲线、 纹理特性等,也可是空间频谱或直方图特征等。

阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。

阈值分割图像的基本原理描述如下:利用图像中要提取的目标物与其背景在灰度特性上的差异,把图像视为具有不同灰度级的两类区域(目标和背景)的组合,选取一个合适的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生对应的二值图像。

即:()()()⎩⎨⎧≥<=.,1.,0,T y x I T y x I j i B阈值分割是一种简单有效的图像分割方法。

他对物体与背景有较强对比的图像分割特别有效,所有灰度大于或等于预知的像素被判决为属于物体,灰度值用“255”表示前景,否则这些像素点被排除在物体区域外,灰度值为“0”,表示背景。

3 图像的阈值分割技术阈值法有多种类型,主要有:全局阈值,自适应阈值等。

所谓全局阈值,如果背景的灰度值在整个图像中可合理的看做恒定,而且所有物体与背景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用了一个固定的全局阈值一般会有较好的效果。

3.1 全局阈值分割图2-1给出了利用全局阈值分割图像的实例。

图2-1(a)是原图,(b)是选择分割阈值为60的结果图。

MATLAB程序如下:%全局阈值I=imread('zw.jpg');[width,height]=size(I);for i=1:widthfor j=1:heightif(I(i,j)<150)BW1(i,j)=0;elseBW1(i,j)=1;endendendfiguretitle('全局阈值')imshow(BW1)这里设定了一个常数150,通过比较灰度值与150的大小关系来重新给图像赋值。

(a) 原图像(b)已分割图像图3.1 全局阈值分割3.2 自适应阈值但是,在许多情况下,背景的灰度值并不是常数,物体和背景的对比度在图像中也有变化,这时就要引入自适应阈值,一个在图像中某一区域效果良好的阈值在其他区域却可能效果很差。

在这种情况下,需要把灰度阈值取成一个随图像中位置缓慢变化的函数值,即为自适应阈值。

这类算法的时间复杂度和空间复杂度比较大,但是抗噪声的能力比较强,对采用全局阈值不容易分割的图像有较好的效果。

这种方法的关键问题是如何将图像进行细分和如何为得到子图像估计门限值。

由于用于每个像素的门限取决于像素在子图像中的位置,这类门限处理是自适应的。

4 最佳阈值的选择除非图像中的物体有陡峭的边沿,否则灰度阈值的取值对所抽取物体的边界的定位和整体的尺寸有很大的影响。

这意味着后续的尺寸(特别是面积)的测量对于灰度阈值的选择很敏感。

由于这个原因,我们需要一个最佳的,或至少是具有一致性的方法确定阈值。

4.1 直方图技术直方图双峰法是一种全局阈值分割方法。

假定物体和背景分别处于不同灰度级,图像被零均值高斯噪声污染,图像的灰度分布曲线近似用两个正态分布概率密度函数,分别代表目标和背景的直方图,利用这个函数的合成曲线拟合整体图像的直方图,图像的直方图将会出现两个分离的峰值。

该方法适用于具有良好双峰性质的图像,但需要用到数值逼近等计算,算法十分复杂,而且多数图像的直方图是离散的、不规则的。

先作出图像的灰度直方图,若其直方图呈双峰且有明显的谷底,则可以将谷底点所对应的灰度值作为阈值T,然后根据该阈值进行分割就可以将目标从图像中分割出来。

这种方法适用于目标和背景的灰度差较大,直方图有明显谷底的情况。

MATLAB图像处理工具箱提供了生成并绘制图像的直方图函数imhist( ),求门限函数graythresh( ),以及转换成二值图像函数im2bw( )。

图3-1给出了利用双峰法分割图像的实例。

图3-1(a)是原始的灰度图像,(b)是原图像的灰度直方图,(c)是直方图双峰法提取结果。

图3-1生成直方图后可以看到,图像有明显的双峰。

两个峰尖对应于物体内部和外部较多数目的点。

两峰之间的谷对应于物体边缘附近相对较少数目的点。

所以可以取谷底对应的灰度值作为阈值。

MATLAB程序如下:I=imread('ZW.jpg');I=rgb2gray(I);figure;subplot(1,3,1);imshow(I)title('原始灰度图')newI=im2bw(I,150/255);%根据上面直方图选择阈值150,划分图像的前景和背景figure;subplot(1,3,1);imshow(newI);title('分割后图像')MATLAB图象处理工具箱提供了imhist函数来计算和显示图象的直方图。

其中imhist(I,n)计算和显示灰度图象I的直方图,n为指定的灰度级数目,默认值为256。

图4.1生成直方图图4.2 双峰法分割4.2 最大类间方差法(OTSU )最大类间方差法又称为OTSU 算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。

它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分的方差取最大值,即分离性最大。

设X 是一幅具有L 级灰度级的图像,其中第i 级像素为i N 个,其中i 的值在0~L-1之间,图像的总像素点个数为:第i 级出现的概率为:在OTSU 算法中,以阈值k 将所有的像素分为目标0C 和背景1C 两类。

其中,0C 类的像素灰度级为0~k-1,1C 类的像素灰度级为k~L-1。

图像的总平均灰度级为:∑-==1L i iiPμNN P i i =∑-==1L i iNN0C 类像素所占面积的比例为:1C 类像素所占面积的比例为:01-=ωω10C 类像素的平均灰度为:00=ωμμ/)()(k k1C 类像素的平均灰度为:111=ωμμ/)()(k k其中,则类间方差公式为:22)()()(01002-+-=μμωμμωδk令k 从0~L-1变化,计算在不同k 值下的类间方差)(k 2δ,使得)(k 2δ最大时的那个k 值就是所要求的最优阈值。

图3-2为采用OTSU 方法取得最优阈值后进行阈值分割的结果。

MATLAB 程序如下: I=imread('ZW.jpg'); I=rgb2gray(I); subplot(1,3,1); figure;∑-=0=1k i iPω∑-=0=1)(k i iiPk μ∑-=01-==1)(1)(L ki ik iPk μμimshow(I)title('原始灰度图')%用MATLAB函数计算阈值level=graythresh(I);%OTSU计算全局图像I的阈值BW=im2bw(I,level);%阈值分割f igureimshow(BW)title('自适应阈值')MATLAB提供graythresh函数来自动获取分割阈值,im2bw 功能是转换图像为二值化图像。

相关文档
最新文档