当前位置:首页 > 免费毕业设计

免费毕设之基于matlab的数字图像分割技术研究及实现(论文)

免费毕设之基于matlab的数字图像分割技术研究及实现(论文)

  • 网站价格: 1
  • 特殊技术: 免费毕设
  • 作品类型: 免费毕设
  • 售后服务:

联系方式: 微信:biyebang QQ: 629001810

作品详情

 

目录

 

系统设计

 图像分割的研究现状

随着科学技术的不断发展,人们逐渐认识到现有的任何一种单独的图像分割算法都难以对一般图像取得令人满意的分割结果,因而在继续致力于将新的概念以及新的方法引入图像分割领域的同时,更加重视多种分割算法的有效结合。采取什么样的结合方法才能体现各种方法的优点和取得好的效果已成为人们关注的问题。

在20世纪80年代后期,在图像处理、模式识别和计算机视觉的主流领域,受到人工智能发展的影响,出现了将更高层次的推理机制用于识别系统的做法,这种思路也开始影响图像分割方法.神经网络、形态学理论、小波理论等在图像分割领域得到广泛的应用,遗传算法、尺度空间、多分辨率方法、非线性扩散方程等近期涌现的新方法和新思想也不断被用于解决分割问题,国内外学者提出了不少针对一些具体应用的好的分割方法。

 目前人们仍在继续研究更先进的成像技术和更复杂的图像处理算法。图像分割方法的研究与分析与影像数据的物理成像原理、图像形成和重构算法的关系更为密切,而且图像分割与其他图像处理分析任务(如图像增强、匹配、可视化)在识别对象结果和功能上是相关的,因此将他们结合起来共同研究是未来研究的一种趋势。

3.2图像分割在图象处理中的位置

图像分割(image Segmentation)是一种重要的图像技术,它不但得到广泛的重视和研究,它在实际中也得到大量的应用。图像分割在不同领域中有时它用其他名称,如目标轮廓(obiect lineation)技术,阈值化(thresholding)技术,图像区分或求差(image discrimination)技术,目标检测(targetdetection)技术,目标识别(target recognition)技术,目标跟踪(target tracking)技术等。这些技术本身或核心实际上它是图像分割技术图像分割是图像处理、分析的一项基本内容。图像工程是一对整个图像领域进行研究应用的新学科,它的内容丰富,根据抽象程度和研究方法的不同可分为三个各有特点的层测:图像处理,图像分析和图像理解如下图所示:

图像处理着重强调在图像之间进行变换以改善图像的视觉效果。图像分析则主要是对图像中感兴趣的目标进行检测和测量。以获得它们的客观信息从而建立对图像的描述。图像理解的重点是在图像分析的基础上,进一步研究图像中各目标的性质和它们之间的相互关系,并得出对原始图像或客观场景的解释。从而知道和规划行动。

图像分割就是把图像分成各具特性的区域并提出感兴趣目标的技术和过程。这里特性可以是像素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区域。图像分割时由图像处理进到图像分析的关键步骤,在图像工程中占有重要位置。一方面,它是目标表达的基础,对特征测量有重要影响。另一方面,因为图像分割及其基于分割的目标表达、特征提取和参数测量等将原始图像转化为更抽象更紧凑的形式,使得更高层的图像分析和理解成为可能。图像分割在实际应用中已得到广泛的应用,例如在工业自动化,在线产品检验,生产过程控制,文档图像处理,遥感和生物医学图像分析,保安监视,以及军事,体育,农业工程等方面。概括来说,在各种图像应用中,只要需要对图像目标进行提取,测量等都离不开图像分割。近年来,图像分割在对图像编码中也起到越来越重要的作用,例如国际标准 MPEG-4中模型基/目标基编码等都需要基于分割的结果。可见,图像分割在图像工程中有重要的地位和影响。

3.3 图像分割的定义

图像分割是指将图像中具有特殊含义的不同区域区分开来,也就是将图像分成有意义的各目标区域。例如,在医学图像处理中,如输入的是一幅细胞的照片,就需要分割出单个细胞,又如,输入的是地形航空照片或地貌遥感图像,则就需要检析出山区、平原、水域、森林、城市、道路等。这些从图像域中分离出来的“目标”便是图像分割的对象。图像中目标的形状可以用两种方式来表达:目标的边界或目标所覆盖的区域。用边缘检测和边缘跟踪技术,能够实现目标形状的边缘表达。而用目标覆盖的区域表达形状,则需要把图像分割成几个具有某种均匀一致性的区域。在实际图像中往往存在一些具有某种均匀一致性的区域,如灰度、纹理等分布的均匀一致性。这种一致性构成的特征向里可用于区分图像的各个区域。图像分割就是利用这些特征向量来检验各区域的一致性,从而达到将图像分割成不同区域的目的。

3.4传统图像阈值分割法

图像分割是计算机视觉研究中一个重要而困难的任务。计算机视觉中的图像处理包括目标检测、特征提取和目标识别等,都依赖于图像分割的质量。虽然图像分割一直受到研究人员的重视,但它的进展比较缓慢,被认为是计算机视觉中的一个瓶颈。

图像分割是自动目标识别的关键和首要步骤,其目的是将目标和背景分离,为计算机视觉的后续处理提供依据,通常图像分割包括阈值法、边缘检测法和区域跟踪法。其中阈值法是图像分割的常用方法。


系统实现

5.1基于阈值的分割方法

基于阈值的分割方法是一种应用十分广泛的图像分割技术。所谓阈值分割方法的实质是利用图像的灰度直方图信息得到用于分割的阈值。它是用一个或几个阈值将图像的灰度级分为几个部分,认为属于同一个部分的象素是同一个物体。它不仅可以极大的压缩数据量,而且也大大简化了图像信息的分析和处理步骤。因此,在很多情况下,是进行图像分析、特征提取与模式识别之前必要的图像预处理过程。它特别适用于目标和背景占据不同灰度级范围的图像。

阈值分割方法的最大特点是计算简单,在重视运算效率的应用场合,它得到了广泛的应用。

下面举例说明这种方法的实现过程,具体算法如下:

1.读取图像如示;

2.将彩色图像转化为灰度图像;

3.计算直方图;

4.根据直方图选取阈值;

5.根据阈值将图像分成两部分:背景和实物区

具体的MATLAB实现过程如下所示:

clear

I=imread('E:\学习\大四毕业设计\新建文件夹\8.jpg') 读取图像

imshow(I);     显示图像

J=rgb2gray(I);   将图像变为灰度图

figure,     画图

imshow(J);    显示灰度图象

figure      画图

imhist(J);   显示灰度直方图

[M,N]=size(J); 求图像的大小

for ( i=1:1:M)

    for ( j=1:1:N)

      if J(i,j)>150 如果灰度值大于150,就增强到255

       J(i,j)=255;

  end

     end

end

figure

imshow(J);  画图

边缘检测法

 图像的边缘对人的视觉具有重要意义,一般而言,人们看到一个有边缘的物体时,首先感觉到的便是边缘,灰度或结构信息的突变处成为边缘。图像的边缘有方向性和幅度两个属性,沿边缘方向像素变化缓慢,垂直于边缘方向像素变化剧烈,边缘上的这种变化可用微分算子检测出来,常用一阶导数来检测边缘,基于一阶导数检测边缘有:Roberts算子,  Sober算子, Prewitt算子。

应用RobertsSoberPrewitt算子检测边缘实例。

I=imread('E:\学习\大四毕业设计\新建文件夹\10.jpg'); 读取图像

imshow(I); 显示图像

title('原始图像');  标记

figure,  画图

J=rgb2gray(I);  变为灰度图像

subplot(2,2,1); 将画图空间分成4块,取第一块

imshow(J);   显示灰度图

title('灰度变化后的图像') 标记

[g,t]=edge(J,'Roberts',[],'both') 进行边缘检测

subplot(2,2,2);  将画图空间分成4块,取第2块

imshow(g);  显示灰度图g

title('Roberts算子分割结果')

[g,t]=edge(J,'sobel',[],'both')

subplot(2,2,3);

imshow(g);

title('sobel算子分割结果')

[g,t]=edge(J,'prewitt',[],'both')                                                    

subplot(2,2,4);

imshow(g);

title('prewitt算子分割结果')

3边界法

这种方法是寻找两个区域间边界的方法,具体实现如下所示:

I=imread('E:\学习\大四毕业设计\新建文件夹\2.jpg');  显示图像

subplot(2,2,1);

imshow(I);

J=rgb2gray(I);

subplot(2,2,2);

imshow(J);

J=imadjust(J,[],[0 1],3);  调整灰度级把灰度变到01之间

J=im2bw(J);       二值化

subplot(2,2,3);

imshow(J);

width=sum(J);       %求每列一的个数

x=1:size(width,2);     %求车牌宽度

figure

bar(x,width);

title('字符宽度') ;     %产生水平投影图即字符宽

begins=zeros(1,2);

ends=zeros(1,2);

j=0;

k=0;

for i=2:size(width,2)-1

    if width(i:i+1)>0 & width(i-1)==0 求边界,对边界进行处理

        j=j+1;

        begins(j)=i;  

    elseif width(i-1:i)>0 &width(i+1)==0 ;

        k=k+1;

        ends(k)=i;    

    end

end                         

cut_img1=J(:,begins(1):ends(1));

cut_img2=J(:,begins(2):ends(2));

figure,

subplot(1,2,1)

imshow(cut_img1)

subplot(1,2,2)

imshow(cut_img2)

5.4区域法

如果说前面谈到的两节的算法分别从类似于“点”、“线”的视角看待图像分割问题,下面介绍这类图像分割算法就相当于从“面”的角度来看待图像分割问题了。根据图像分割的定义,其最终是要得到满足一定条件的若干个区域。那么,基于区域的图像分割算法,就是如何直接利用区域这个概念进行算法的研究。区域法包括区域生长法和区域分裂法,在此只介绍区域生长法。

区域生长法主要有以下三步构成:

1、选择合适的种子点;

2、确定生长准则;

3、确定生长停止条件

区域生长法是通过MATLAB工具箱中的函数imreconstruct完成的,由于涉及到形态学的知识本文只利用了这个函数实现了分割图像,没有讨论具体的过程。

I=imread('E:\学习\大四毕业设计\新建文件夹\4.jpg');  读取图像

imshow(I); 显示

figure;   画图

J=rgb2gray(I);  变为灰度图

subplot(2,2,1);

imshow(J);    显示灰度图

seedx=[80,400,200]; 建立种子点的横坐标

seedy=[290,400,300]; 建立种子点的纵坐标

hold on

plot(seedx,seedy,'gs'); 将画在图中

title('原始图像及种子点位置'); 加标题

J=double(J);  变换图像类型

markerim=J==J(seedy(1),seedx(1)); 初始化种子点

for i=2:length(seedx) 循环

   markerim=markerim|(J==J(seedy(i),seedx(i)));

end

thresh=[12,6,12];

maskim=zeros(size(J));

for i=1:3

   g=abs(J-J(seedy(i),seedx(i)))<=thresh(i); 根域值比较

    maskim=maskim|g

end

[g,nr]=bwlabel(imreconstruct(markerim,maskim),8); 调用函数进行区域化

subplot(2,2,2);

imshow(g);

title('三个种子点区域生长结果');


 

源文件


 

帮我毕业网微信

版权所有© 帮我毕业网 并保留所有权利

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩