MATLAB纹理分割方法对细胞图片分割(精品文档)
Matlab(六)图像分割(二)

区域生长
算法实现:
1)根据图像的不同应用选择一个或一组种子,它或者 是最亮或最暗的点,或者是位于点簇中心的点 2)选择一个描述符(条件,如灰度差小于某个阈值) 3)从该种子开始向外扩张,首先把种子像素加入结果 集合,然后不断将与集合中各个像素连通、且满足描述 符的像素加入集合 4)上一过程进行到不再有满足条件的新结点加入集合 为止
Matlab图像处理知识(六)
• 区域分割 • 形态学分水岭算法
区域生长
原理:以一组生长点(可以是单个像素,也可以是某 以一组生长点(可以是单个像素,
个小区域)开始,搜索其邻域, 个小区域)开始,搜索其邻域,把图像分割成特征相似的 若干区域,比较相邻区域与生长点特征的相似性, 若干区域,比较相邻区域与生长点特征的相似性,若它们 足够相似,则作为同一区域合并,形成新的生长点。 足够相似,则作为同一区域合并,形成新的生长点。以此 方式将特征相似的区域不断合并、直到不能合并为止, 方式将特征相似的区域不断合并、直到不能合并为止,最 后形成特征不同的各区域。 后形成特征不同的各区域。
分水岭
例1:对梯度图像进行分水岭分割。 例2:为防止“过分割现象”,在分割前加 标记。
分水岭
原理:分水岭分割方法,是一种基于拓扑理论的数学
形态学的分割方法,其基本思想是把图像看作是测地学上 的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔 高度,每一个局部极小值及其影响区域称为集水盆,而集 水盆的边界则形成分水岭。 分水岭的概念和形成可以通过模拟浸入过程来说明。 在每一个局部极小值表面,刺穿一个小孔,然后把整个模 型慢慢浸入水中,随着浸入的加深,每一个局部极小值的 影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即 形成分水岭。
区域生长
如何使用Matlab进行图像识别与图像分割任务

如何使用Matlab进行图像识别与图像分割任务引言:在当今数字化时代,图像识别与图像分割任务在各个领域中扮演着重要的角色,如医学影像、自动驾驶、安防监控等。
而MATLAB作为一款强大的数值计算工具,提供了便捷且高效的方法来完成这些任务。
本文将讨论如何使用MATLAB进行图像识别与图像分割任务,并分享相关技巧和方法。
一、图像识别基础1.1 MATLAB图像处理工具箱在进行图像识别任务之前,首先需要安装和加载MATLAB图像处理工具箱。
该工具箱为我们提供了一系列用于处理和分析图像的函数和工具。
在MATLAB命令窗口中输入“ver”命令可以查看当前已经安装的工具箱列表,确保图像处理工具箱已被正确安装。
1.2 图像预处理在进行图像识别任务之前,往往需要对图像进行预处理,以提高后续处理的准确性和效率。
一般而言,图像预处理包括灰度化、平滑处理、边缘检测等步骤。
例如,可使用MATLAB中的imread函数读取图像,并使用rgb2gray函数将图像转换为灰度图像。
接着可以使用imfilter函数进行平滑处理,以去除图像中的噪声。
最后,可以使用边缘检测算法(如Canny算法)提取图像的边缘信息。
通过这些预处理步骤,我们可以得到一幅适合进行后续图像识别处理的图像。
二、图像识别任务2.1 特征提取在进行图像识别任务时,首先需要明确要识别的目标,然后提取相关特征以进行分类或匹配。
在MATLAB中,可以使用图像处理工具箱中的函数来进行特征提取。
例如,若要识别一幅图像中的人脸,可以使用Haar级联分类器来实现。
MATLAB提供了一个名为“vision.CascadeObjectDetector”的类来实现该功能。
使用此类,可以调用detect函数来检测图像中的人脸,并返回人脸位置的信息。
另外,还可以使用SURF(加速稳健特征)算法来提取图像中的关键点和描述子。
通过比较描述子的相似程度,可以实现图像的匹配和识别。
使用MATLAB中的vision套件下的vision.SURF函数,可以方便地进行SURF算法的特征提取。
使用Matlab进行图像分割的方法研究

使用Matlab进行图像分割的方法研究引言:图像分割技术在计算机视觉领域具有重要的应用价值。
它可以将一幅图像划分成若干个区域,将相似的像素点归为一组,从而提取出感兴趣的目标。
Matlab作为广泛使用的科学计算软件,提供了丰富的图像处理工具包,为图像分割领域的研究提供了许多便利。
本文将通过对Matlab中常用的图像分割方法的研究,探讨如何使用Matlab进行图像分割。
一、基于阈值的图像分割方法1.1 简单阈值法简单阈值法是一种最常用的图像分割方法之一。
它基于图像灰度值的差异,将像素点分成两类:黑色和白色。
具体实现上,我们需先选择合适的阈值,然后将图像中灰度值小于阈值的像素点设为黑色,灰度值大于等于阈值的像素点设为白色。
Matlab提供了丰富的图像处理函数,可以通过一行简洁的代码实现简单阈值法。
1.2 自适应阈值法简单阈值法在图像灰度均匀性较好的情况下效果较好,但在图像灰度不均匀的情况下会出现分割效果不佳的情况。
而自适应阈值法则可以根据图像的局部灰度特性进行分割,从而提高图像分割的准确性。
Matlab中提供了一系列的自适应阈值法函数,比如局部均值法、局部中值法等,可以根据具体的需求选择合适的方法进行图像分割。
二、基于边缘的图像分割方法2.1 Roberts算子Roberts算子是一种经典的图像边缘检测算法,它通过对图像进行微分运算,提取出图像边缘的特征。
在Matlab中,我们可以使用函数"edge"结合Roberts算子进行图像分割,并得到图像的边缘信息。
通过对提取得到的边缘信息进行二值化处理,即可将图像分成物体和背景两部分。
2.2 Canny算子Canny算子是一种常用的边缘检测算法,它通过利用图像中像素点的梯度变化信息来提取出图像的边缘。
在Matlab中,我们可以使用函数"edge"结合Canny算子进行图像分割。
Canny算子具有较好的抗干扰性和边缘连接性,因此在图像分割中使用广泛。
如何在Matlab中进行图像纹理分析与合成

如何在Matlab中进行图像纹理分析与合成引言:作为一种广泛应用于图像处理与分析的编程工具,Matlab提供了丰富的函数库与工具箱,使得图像纹理分析与合成变得更加简单与高效。
本文将介绍如何使用Matlab进行图像纹理分析与合成,并探讨一些相关技术与方法。
一、图像纹理分析图像纹理是指图像中重复或规则出现的细微视觉元素。
图像纹理分析的目标是提取出图像中的纹理特征,以便进一步的分析与应用。
常用的图像纹理分析方法包括灰度共生矩阵(GLCM)、小波变换与局部二值模式(LBP)等。
1. 灰度共生矩阵(GLCM)灰度共生矩阵是一种描述图像纹理特征的统计工具。
它通过计算图像中每一像素与其周围像素之间的灰度值差异,来描述图像的纹理特征。
在Matlab中,可以使用`graycomatrix`函数来计算图像的灰度共生矩阵,并通过`graycoprops`函数计算出一些统计特征,如对比度、能量、熵等。
2. 小波变换小波变换是一种多尺度分析技术,它能够将图像分解成不同尺度的纹理特征。
Matlab提供了丰富的小波变换函数,如`wavedec2`和`waverec2`等。
可以利用小波变换将图像进行分解,并选择感兴趣的尺度系数,以提取图像的纹理特征。
3. 局部二值模式(LBP)局部二值模式是一种描述图像纹理的统计工具。
它通过比较每一像素与周围像素之间的灰度值,将每一像素编码为一个二进制数,从而描述图像的纹理特征。
在Matlab中,可以使用`extractLBPFeatures`函数计算图像的局部二值模式特征,并进一步应用于分类、检索等任务中。
二、图像纹理合成图像纹理合成是指通过模拟、重建或生成纹理的方法,将不同纹理元素组合成新的图像纹理。
Matlab提供了一些函数和工具箱,可以实现图像纹理合成的过程。
下面介绍两种常见的图像纹理合成方法。
1. 基于样本的图像纹理合成基于样本的图像纹理合成是一种常用的图像纹理合成方法。
它通过从原始纹理图像中抽取样本块,并将其拼贴到输出图像中,以生成新的纹理。
基于MATLAB的图像分割方法及应用

- - - .可修编- 财经大学 (《图像处理》课程论文)
题目:图像分割算法研究
——基于分水岭分割法的彩色图像分割
学 院:管理科学与工程学院 专业:电子信息工程 姓 名:万多荃 学号:20123712 电 话: 任课教师:许晓丽 论文成绩: - -
- .可修编- 2015年10月 - -
- .可修编- 目录 摘 要2 1.前言2 1.1图像分割技术2 2研究目的3 3 图像处理技术基础3 3.1 技术背景3 3.2 彩色图像格式3 3.3 彩色图像分割技术5 4分水岭分割法5 5 彩色图像分割的MATLAB实现8 5.1 MATLAB语言:分水岭分割法实现图像分割8 5.1.1 设计流程8 5.1.2 MATLAB程序9 5.2结果分析11 结论12 参考文献13 - -
- .可修编- 摘要
图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。 本文根据图像分割原理及人眼视觉的基本理论,研究图像的彩色模型及图像分割的常用方法,比较各方法的特点,并选择合适的方法对图像进行分割。本文采用MATLAB软件对图像进行彩色坐标变换及阈值分割,计算简单,具有较高的运行效率,分割的结果是使图像更符合人眼的视觉特性,获得比较好的效果。 关键字:图像处理;图像分割;人类视觉;MATLAB
1.前言 1.1图像分割技术 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。 图像数据的模糊和噪声的干扰是分割问题的两大难题。到目前为止,还没有一个完美的图像分割方法,可以根据人的意愿精确地分割任何一种图像。现实图像中景物情况各种不同,具体问题需具体分析,按照实际情况选择得当的方法。分割成果的好坏或正确与否,到现在为止,尚无一个统一的评价和判断标准,分割的好坏务必从分割的效果和现实应用的场合来判断。然而,在人类研究图像的历史长河中,仍然积累了许多经典的图像分割方法。固然这些分割方法不可以适应全部种类的图像分割,可是这些方法却是图像分割方法进一步发展的根基。实际上,当代一些分割算法恰巧是从经典的图像分割方法中产生出来的。图像分割法大致可以分为三个种:边缘检测法,阈值分割法和基于区域的图像分割法。 - - - .可修编- 2研究目的
在Matlab中进行图像分割和图像分析的技术

在Matlab中进行图像分割和图像分析的技术图像分割和图像分析是计算机视觉领域中重要的研究方向之一。
它们可以帮助我们从一幅图像中提取出不同的物体或区域,并对这些物体或区域进行特征提取和分析。
在实际应用中,图像分割和图像分析被广泛应用于医学影像、环境监测、人脸识别等领域。
而Matlab作为一种强大的数学软件和编程语言,提供了丰富的图像处理工具箱,使我们能够简单、高效地实现图像分割和图像分析。
一、图像分割图像分割是将一幅图像划分成若干个不相交的子区域的过程。
常见的图像分割方法有阈值分割、边缘分割、区域生长等。
阈值分割是根据像素强度的差异将图像划分为前景和背景两个区域。
在Matlab中,可以使用imbinarize函数来实现简单的阈值分割。
边缘分割是通过检测图像中的边界来进行分割,常用的边缘检测算法包括Canny算法、Sobel算法等。
在Matlab中,可以使用edge函数来实现边缘分割。
区域生长是一种基于像素相似性的分割方法,通过将相邻的像素进行合并来形成连续的区域。
在Matlab中,可以使用regiongrowing函数来实现区域生长分割。
二、图像分析图像分析是对图像进行进一步处理和分析的过程。
它可以提取出图像中感兴趣的特征信息,如形状、纹理、颜色等,并进行量化和比较。
常见的图像分析方法有特征提取、特征匹配、目标识别等。
特征提取是从图像中提取出一些具有代表性的特征,常用的特征包括灰度直方图、颜色矩、纹理特征等。
在Matlab中,可以使用imhist函数来计算图像的灰度直方图,使用rgb2gray函数将彩色图像转换为灰度图像。
特征匹配是将一个图像的特征与另一个图像的特征进行比较,以判断它们是否相似。
常用的特征匹配算法包括最小均方差匹配、归一化互相关匹配等。
在Matlab中,可以使用normxcorr2函数来实现归一化互相关匹配。
目标识别是在图像中找到特定对象或模式的过程。
常用的目标识别算法包括模板匹配、模型匹配等。
MATLAB技术图像分割方法
MATLAB技术图像分割方法MATLAB技术在图像分割方法中的应用图像处理在现代科学技术中占据着重要的地位,图像分割作为图像处理的一项关键技术,被广泛应用于医学影像、计算机视觉等领域。
其中,MATLAB作为一种强大的数学软件工具,提供了丰富的图像处理函数和库,为图像分割方法的研究和应用提供了很多方便和支持。
一、介绍图像分割的概念和意义图像分割是将一幅图像划分为若干个具有独立特征的区域的过程,目的是从复杂的图像中提取出目标区域,为后续的图像识别、分析等任务提供基础。
图像分割在医学影像领域中尤为重要,可以帮助医生准确定位和分析病灶,提高疾病诊断和治疗效果。
此外,在计算机视觉、目标检测等领域,图像分割也扮演着重要的角色。
二、基于阈值的图像分割方法阈值法是最简单且最常用的图像分割方法之一,它根据图像灰度值的不同,将图像分为多个分割区域。
在MATLAB中,可以通过编写简单的代码实现基于阈值的图像分割。
首先,使用imread函数读入图像,然后将图像转换为灰度图。
接着,使用imhist函数计算图像的灰度直方图,并选择合适的阈值将图像分割为目标区域和背景区域。
最后,使用imshow函数显示分割结果。
三、基于边缘检测的图像分割方法边缘检测是一种常用的图像分割技术,它通过检测图像中的边缘信息来实现分割。
MATLAB中提供了多种边缘检测算法的函数,如Sobel、Canny等。
可以通过调用这些函数实现图像的边缘检测。
首先,使用imread函数读入图像,并将图像转换为灰度图。
然后,使用边缘检测函数对图像进行处理,提取出边缘信息。
最后,使用imshow函数显示分割结果。
四、基于聚类的图像分割方法聚类是一种常用的图像分割技术,它通过将图像中的像素按照某种相似度准则划分为不同的簇来实现分割。
在MATLAB中,可以利用聚类算法进行图像分割,如K均值聚类、谱聚类等。
首先,使用imread函数读入图像,并将图像转换为待处理的特征矩阵。
[VIP专享]MATLAB的图像处理技术:图像分割
一种SEM图像高效的图像分割技术摘要:在经过了大量的实验探索和努力后,建立了通过自动检查基准比较法来取代以往依靠人类眼睛检查的SEM图像。
这种检查方法有两种类型:直接比较法和间接比较法。
在实际中,间接比较方法使用更广泛,这种方法需要分段步骤即分裂原图像分割成两个区域:前景区域和背景区域。
尤其是SEM图像分割是不容易的,因为高噪音水平,图像偏移,变化和多样性图案。
在以往的工作中,山脊探测器已被广泛用来检测和克服具有这些特征的SEM图像。
在本文中,我们提出了一个有效的分割方法上发展起来的分水岭分割算法,全局-局部阈值法,高斯滤波器的拉普拉斯算子和非最大值抑制。
在对各种SEM图像分割中的应用,所提出的方法对于1D图像和2D图像分别显现了94%和98%的准确性。
1引言:在以前是通过人的眼睛,用于扫描电子显微镜(SEM)图像半导体硅晶片的检查,人眼检测然而是具有一定的局限性,而且并不是对测试的所有图像都是可靠的,所以经过许多努力,最终发现了自动检测以取代人眼检查[1,4,5,8,9]。
对于自动检查中两种类型的比较方法——直接和间接方法,相继出台。
直接比较方法进行比较的基准图像和检验图像,这种方法直接计算基准图像和检验图像之间的差别。
直接比较方法通常能够较快速和容易找两者之间的差别。
但是,它由于各种偏移值得不同所以很难找到合适的阈值。
更广泛使用的间接比较的方法,不对两个原图像进行直接的参考和检验的比较。
相反,它是比较两个预处理后的分割图像。
本文提出的分割方法扫描电子显微镜(SEM)图像划分为两个区域,前景和背景。
前景部分是导体,而背景部分是绝缘体。
SEM图像从半导体硅的晶圆上得到的。
为了有效的将SEM图像分割成两个区域,由于SEM图像不同于通常的光学图像,他的的某些性能应予以考虑。
首先,它看起来像一个边缘图像。
由于SEM使用电子扫描,其结果是依赖于目标的的结构。
反射的电子的量与结构的变化的量成比例的。
在结构上的边缘,因此,灰度值远高于一个平面区域。
基于matlab的图像分割及其应用毕业设计论文[管理资料]
基于MATLAB的图像分割及其应用摘要: 近年来,由于科技的迅猛发展,计算机性能越来越好,图像处理系统的价格的日益下降,图像处理在众多科学领域与工程领域得到广泛的利用。
从图像处理过渡到图像分析的关键步骤就是图像分割,所以说图像分割在图像工程中占据着重要的位置。
在图像分析中,图像分割的任务就是把分成互不重叠的有意义的区域,以便进一步的对图像进行处理、分析和应用。
图像分割是图像特征提取和识别等图像理解的基础,对图像分割的研究一直是数字图像处理技术研究中的热点和焦点。
本文主要对图像分割算法进行了分析、分类、归纳和总结。
并应用Matlab进行了仿真实验,在基于L*a*b 的空间彩色分割主要用到的函数是色彩空间转换函数makecform和applyccform,通过计算图像中像素点与样本像素点的距离来判断这个像素点的颜色进行分割。
基于纹理滤波器的图像分割主要使用entropyfilt函数创建纹理图像,使用bwareaopen函数显示图像的纹理底部纹理。
由于纹理特征的复杂性,每一种算法在对纹理特征处理分析的时候都会有它的缺陷和局限性。
利用边缘检测方法对细胞图像进行了分割实验,结果与传统方法相比,轮廓提取更为精确,且最大程度的保留了内部细胞核的轮廓。
同时指出了基于阀值的分割方法、基于边缘的分割方法、基于区域的分割方法等各类方法的特点,为不同的应用场合及不同的图像数据条件下选择不同的分割算法提供了一些依据。
关键词:Matlab 图像分割分割算法Image Segmentation Based on MATLAB and Its Application Abstract: In recent years, the rapid development of science and technology, computer performance is getting better, declining prices image processing system, image processing is widely utilized in many fields of science and engineering fields. The transition from image processing to image analysis, image segmentation is the key step,so that the image segmentation occupies an important position in the image project. In the image analysis, image segmentation task is to put into meaningful nonoverlapping region, in order to further the image processing, analysis and application. Image segmentation is the basis of the image feature extraction and recognition, image understanding, image segmentation research has been the digital image processing technology research hot spots and focus. This paper focuses on image segmentation algorithms are analyzed, classified and summarized. Application of Matlab simulation and experiments, based on L * a * b color space is divided main functions used color space conversion functions makecform and applyccform, by calculating the distance between the image pixels and pixel sample to determine the pixel color segmentation. Image segmentation based on texture filter mainly use entropyfilt function to create a texture image using bwareaopen function displays an image texture bottom texture. Because of the complexity of the texture features of each algorithm when processing analysis of texture features will have its flaws and limitations. Using edge detection method for cell image segmentation experimental results compared with the traditional method, contour extraction more accurate, and the greatest degree of retention of the internal contours of the nucleus. Also pointed out that the threshold-based segmentation method, based on the edge of the segmentation method, based on the characteristics of various types of region segmentation method method, choose different segmentation algorithms for the different applications and different conditions of image data provides some basis.Keywords: Matlab Image segmentation Segmentation algorithm目录目录1 前言 (1)图像分割概述 (1)研究背景及目的 (1)论文内容及结构 (2)2 MATLAB简介 (3)MATLAB软件介绍 (3)MATLAB概况 (3)MATLAB技术特点 (3)3 图像分割技术概述 (6)图像分割的定义 (6)图像分割的几种方法 (6)阈值分割 (6)区域分割 (7)边缘分割 (8)直方图法 (9)图像分割算法的分析比较 (9)本章小结 (13)4 图像分割仿真实验 (14)L*a*b空间的彩色分割 (14)Lab颜色空间 (14)颜色空间转换 (15)图像的空间彩色分割 (15)基于图像纹理的图像分割 (19)图像纹理的定义 (19)图像纹理的分类 (19)图像纹理提取方法 (19)使用MATLAB中的纹理滤波器分割图像 (19)其他图像分割算法的简单实例 (23)阈值分割 (25)最大信息熵算法 (27)门限分割 (28)图像分割检测细胞图像 (30)本章小结 (35)5 总结与展望 (36)参考文献 (37)致谢 (38)附录 (39)1前言图像分割概述图像的研究和应用中,人们往往对图像中的某些部分感兴趣,这些感兴趣的部分一般对应图像中特定的、具有特殊性质的区域(可以对应单一区域,也可以对应多个区域),称之为目标或前景;而其他部分称为图像的背景。
Matlab中的图像纹理分析和纹理识别技术
Matlab中的图像纹理分析和纹理识别技术引言在现代数字图像处理领域,图像纹理分析与纹理识别技术扮演着重要角色。
纹理是指由重复的、有规律的或随机出现的像素组成的视觉模式。
它在物体识别、模式识别、图像分割和图像合成中起着关键作用。
而Matlab作为一款强大的科学计算工具,提供了丰富的图像处理工具箱,为图像纹理分析和纹理识别技术的研究和实现提供了便利。
一、图像纹理分析1. 纹理统计特征提取纹理分析的早期方法是基于统计特征的提取。
通过计算图像中像素间的灰度或颜色差异,可以提取出一系列统计特征,如均值、方差、共生矩阵等。
这些特征可以反映出纹理的统计信息,如纹理粗糙度、纹理方向和纹理周期等。
在Matlab中,可以使用图像处理工具箱中的函数进行特征提取,并结合统计学习算法进行纹理分类。
2. 纹理滤波器除了统计特征提取外,纹理分析还可以借助纹理滤波器进行。
纹理滤波器是通过卷积操作对图像进行处理,以提取纹理特征。
常见的纹理滤波器包括Gabor滤波器、小波变换和局部二值模式(LBP)等。
在Matlab中,可以使用imfilter函数对图像进行滤波操作,从而实现纹理特征的提取。
3. 纹理方向分析图像纹理通常具有一定的方向性,通过纹理方向分析可以对图像进行纹理分割和纹理特征提取。
一种常见的纹理方向分析方法是基于局部二值模式(LBP)和方向直方图。
Matlab提供了LBP特征提取函数和方向直方图函数,可以方便地进行纹理方向分析。
二、纹理识别技术1. 统计模式识别统计模式识别是常用的纹理识别方法之一。
通过构建纹理模型,将待识别图像与模型进行比较,从而完成纹理识别任务。
常用的统计模式识别方法包括最近邻分类器、支持向量机和神经网络等。
在Matlab中,可以利用统计学习工具箱中的函数,快速实现纹理识别算法。
2. 神经网络神经网络在纹理识别中具有广泛应用。
通过构建多层神经网络,将图像的像素作为输入,经过训练后得到一个与纹理特征相关的输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%1.读取图像。代码如下:
I = imread('F:\xb\xb.tif');%读取图像
figure(1); imshow(I);%显示原图像
%2.创建纹理图像。代码如下:
E = entropyfilt(I);%创建纹理图像
Eim = mat2gray(E);%转化为灰度图像
figure(2),imshow(Eim);%显示灰度图像
BW1 = im2bw(Eim, .8);%转化为二值图像
figure(3), imshow(BW1);%显示二值图像
%3.分别显示图像的底部纹理和顶部纹理。代码如下:
BWao = bwareaopen(BW1,2000);%提取底部纹理
figure(4), imshow(BWao);%显示底部纹理图像
nhood = true(9);
closeBWao = imclose(BWao,nhood);%形态学关操作
figure(5), imshow(closeBWao)%显示边缘光滑后的图像
roughMask = imfill(closeBWao,'holes');%填充操作
figure(6),imshow(roughMask);%显示填充后的图像
I2 = I;
I2(roughMask) = 0;%底部设置为黑色
figure(7), imshow(I2);%突出显示图像的顶部
%4.使用entropyfilt进行滤波分割。代码如下:
E2 = entropyfilt(I2);%创建纹理图像
E2im = mat2gray(E2);%转化为灰度图像
figure(8),imshow(E2im);%显示纹理图像
BW2 = im2bw(E2im,graythresh(E2im));%转化为二值图像
figure(9), imshow(BW2)%显示二值图像
mask2 = bwareaopen(BW2,1000);%求取图像顶部的纹理掩膜
figure(10),imshow(mask2);%显示顶部纹理掩膜图像
texture1 = I; texture1(~mask2) = 0;%底部设置为黑色
texture2 = I; texture2(mask2) = 0;%顶部设置为黑色
figure(11),imshow(texture1);%显示图像顶部
figure(12),imshow(texture2);%显示图像底部
boundary = bwperim(mask2);%求取边界
segmentResults = I;
segmentResults(boundary) = 255;%边界处设置为白色
figure(13),imshow(segmentResults);%显示分割结果
%5.使用stdfilt和rangefilt进行滤波分割。代码如下:
S = stdfilt(I,nhood);%标准差滤波
figure(14),imshow(mat2gray(S));%显示标准差滤波后的图像
R = rangefilt(I,ones(5));%rangefilt滤波
background=imopen(R,strel('disk',15));%在原始图像上进行形态学运算
Rp=imsubtract(R,background);%减法运算
figure(15),imshow(Rp,[]);%图像显示清晰化