当前位置:文档之家› 区域生长法的编程实现——程序员数字图像处理第一步

区域生长法的编程实现——程序员数字图像处理第一步

区域生长法的编程实现——程序员数字图像处理第一步
区域生长法的编程实现——程序员数字图像处理第一步

数字图像处理的书数不胜数。相关的方法,从直方图、卷积到小波、机器学习方面的方法也举不胜举。

OpenCV库给我们提供了一整套图像存储、显示方法外,也集成了很多很多的图像、视频处理算法以及机器学习算法,以函数的形式提供给我们使用。

然而在初学阶段,我们往往过分依赖于OpenCV中的那些库函数。

虽说OpenCV集成了很多高效算法,然而,毕竟不是无所不包。

OpenCV中基础的算法有时会缺失,有时用起来不是很得心应手。

区域生长算法就是一例。

区域生长法,思路很简单:将一个图像中的一点作为种子,此种子会沿8邻域/4邻域进行扩展,扩展具有一定限制(即差值不能过大,当然你可以引入梯度这个概念,甚至二维偏导数……),求出种子生长的最终结果。

把示例程序的几张结果发过来,何谓区域生长法,大家一看便知。

区域生长法对于较为均衡的背景中提取目标物而言,效果较为理想。与阈值法、边缘检测法孰优孰劣,俺笔力及精力有限,不进行比较了。单从工程角度,区域生长法是统计闭合图形个数的基础。

这里自己写了一下这个程序的演示代码,只负责将背景同生长不上去的区域分开:

[cpp]view plaincopy

regionGrowth函数详解

参数:

img:需要进行区域生长的图像,8位单通道的IplImage

p_map:整型数矩阵指针,宽高与图像相同,用于储存图像生长结果

矩阵已经被全部赋值为INIT(#define INIT 0)

x_g, y_g区域生长初始种子点

threshold_g区域生长邻域梯度的阈值

生长过程中存储中间数据的容器:

list cont_pts

//contour points 生长边缘链表

list cont_pts_pre

//contour points previously前次生长边缘链表

class g_point为自定义的一个类,具有3个整型数成员变量:x,y坐标以及点点类型函数lbl

处理过程:

第一步,初始生长点(x_g, y_g):将此点坐标压入cont_pts_pre矩阵,并在矩阵上将此点标注为SEED

第二步,第一轮生长:

将cont_pts清空,存储此轮生长点边缘点。访问cont_pts_pre中的每一个点,对点进行四邻域/八邻域生长条件判断。若满足生长条件,1、将该点接到cont_pts末尾;供下轮生长使用。2、在矩阵上将词典标注为SEED。

若不满足生长条件,之在矩阵上将此点标注为INVAL。(以后的边界,便可由INVAL来确定)

这一步骤,是由程序中连着的8个if语句完成。

第三步,为下一轮生长做准备。将cont_pts_pre清空,将cont_pts赋值给cont_pts_pre

接下来的步骤,第2、3、4、……轮生长

迭代终止条件:cont_pts_pre为空,则无点可生长。

处理结果

在p_map中,生长到的点取值为:SEED;未生长到的点:INIT;边界点:INVAL

在编写过程中,考虑过迭代次数、各类点的存储选择的数据结构等限制区域生长法效率的因素。俺将日后写一个运算量、处理时间的评估报告。

RegionGrowth经过优化后的程序,在此处。

https://www.doczj.com/doc/9618073937.html,/detail/sera_ph/4505725

第一次上传资源,没有设置资源积分。希望大家能用得爽快。

此程序可将不同的联通区域用区别开来,处理的结果为:

Matlab实现区域生长算法

Matlab实现区域生长算法 (南京航空航天大学机电学院机械工程系,南京2016年11月1日) 摘要: 图像分割不仅是图像处理领域的一个经典的研究主题,也是图像处理技术的热点和焦点。随着计算机处理技术的发展,图像分割算法引起研究人员越来越多的关注。本文提出了基于传统的种子区域生长算法的基础上形成一种新的图像自动分割区域的方法。算法的实现主要基于Matlab编程实现。 关键词:图像分割,种子区域生长算法,Matlab 一、引言 区域生长是一种古老的图像分割方法,最早的区域生长图像分割方法是由Levine等人提出的。该方法一般有两种方式,一种是先给定图像中要分割的目标物体内的一个小块或者说种子区域(seed point),再在种子区域基础上不断将其周围的像素点以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的目的;另一种是先将图像分割成很多的一致性较强,如区域内像素灰度值相同的小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的,典型的区域生长法如T. C. Pong等人提出的基于小面(facet)模型的区域生长法,区域生长法固有的缺点是往往会造成过度分割,即将图像分割成过多的区域。 区域生长是一种串行区域分割的图像分割方法,其优点是基本思想相对简单,通常能将具有相同特征的联通区域分割出来,并能提供很好的边界信息和分割结果。在没有先验知识可以利用时,可以取得最佳的性能,可以用来分割比较复杂的图像,如自然景物。但是,区域生长法是一种迭代的方法,空间和时间开销都比较大,噪声和灰度不均匀可能会导致空洞和过分割,并在对图像中的阴影效果处理上往往不是很好。 区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素具有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来,这样,一个区域就长成了。 区域生长是指从某个像素出发,按照一定的准则,逐步加入邻近像素,当满足一定的条件时,区域生长终止。区域生长的好坏决定于1.初始点(种子点)的选取。2.生长准则。3.终止条件。区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标的提取。 简单来说下三个法则,对出需要分割的图像: 1、选取图像中的一点为种子点(种子点的选取需要具体情况具体分析)。 2、在种子点处进行8邻域或4邻域扩展,判定准则是:如果考虑的像素与

关于图像分割算法的研究

关于图像分割算法的研究 黄斌 (福州大学物理与信息工程学院 福州 350001) 摘要:图像分割是图像处理中的一个重要问题,也是一个经典难题。因此对于图像分割的研究在过去的四十多年里一直受到人们广泛的重视,也提山了数以千计的不同算法。虽然这些算法大都在不同程度上取得了一定的成功,但是图像分割问题还远远没有解决。本文从图像分割的定义、应用等研究背景入手,深入介绍了目前各种经典的图像分割算法,并在此基础比较了各种算法的优缺点,总结了当前图像分割技术中所面临的挑战,最后展望了其未来值得努力的研究方向。 关键词:图像分割 阀值分割 边缘分割 区域分割 一、 引言 图像分割是图像从处理到分析的转变关键,也是一种基本的计算机视觉技术。通过图像的分割、目标的分离、特征的提取和参数的测量将原始图像转化为更抽象更紧凑的形式,使得更高层的分析和理解成为可能,因此它被称为连接低级视觉和高级视觉的桥梁和纽带。所谓图像分割就是要将图像表示为物理上有意义的连通区域的集合,也就是根据目标与背景的先验知识,对图像中的目标、背景进行标记、定位,然后将目标从背景或其它伪目标中分离出来[1]。 图像分割可以形式化定义如下[2]:令有序集合表示图像区域(像素点集),H 表示为具有相同性质的谓词,图像分割是把I 分割成为n 个区域记为Ri ,i=1,2,…,n ,满足: (1) 1,,,,n i i j i R I R R i j i j ===??≠ (2) (),1,2,,i i i n H R True ?== (3) () ,,,i j i j i j H R R False ?≠= 条件(1)表明分割区域要覆盖整个图像且各区域互不重叠,条件(2)表明每个区域都具有相同性质,条件(3)表明相邻的两个区域性质相异不能合并成一个区域。 自上世纪70年代起,图像分割一直受到人们的高度重视,其应用领域非常广泛,几乎出现在有关图像处理的所有领域,并涉及各种类型的图像。主要表现在: 1)医学影像分析:通过图像分割将医学图像中的不同组织分成不同的区域,以便更好的

图像分割方法综述

图像分割方法综述

图像分割方法综述 摘要:图像分割是计算计视觉研究中的经典难题,已成为图像理解领域关注的一个热点,本文对近年来图像分割方法的研究现状与新进展进行了系统的阐述。同时也对图像分割未来的发展趋势进行了展望。 关键词:图像分割;区域生长;活动边缘;聚类分析;遗传算法 Abstract:Image segmentation is a classic problem in computer vision,and become a hot topic in the field of image understanding. the research actuality and new progress about image segmentation in recent years are stated in this paper. And discussed the development trend about the image segmentation. Key words: image segmentation; regional growing; active contour; clustering

analysis genetic algorithm 1 引言 图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,同时也是图像处理中最困难的问题之一。所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的说就是在一副图像中,把目标从背景中分离出来。对于灰度图像来说,区域内部的像素一般具有灰度相似性,而在区域的边界上一般具有灰度不连续性。 关于图像分割技术,由于问题本身的重要性和困难性,从20世纪70年代起图像分割问题就吸引了很多研究人员为之付出了巨大的努力。虽然到目前为止,还不存在一个通用的完美的图像分割的方法,但是对于图像分割的一般性规律则基本上已经达成的共识,已经产生了相当多的研究成果和方法。本文根据图像发展的历程,从传统的图像分割方法、结合特定工具的图像分割方

图像分割区域生长法

江苏科技大学 数字图像处理 图像分割——区域生长法专题 1 图像分割简介 图像分割( image segmentation) 就是把图像分成各具特征的区域并提取出感兴趣目标的技术和过程。这里特征可以是象素的灰度、颜色、纹理等, 预先定义的目标可以对应单个区域也可以对应多个区域。图像分割是图像处理到图像分析的关键步骤, 在图像工程中占据重要的位置。一方面, 它是目标表达的基础, 对特征测量有重要的影响。另一方面, 因为图像分割及其基于分割的目标表达、特征提取和参数测量等将原始图像转化为更抽象更紧凑的形式, 使得更高层的图像分析和理解成为可能。 图像分割是一种重要的图像处理技术, 它不仅得到人们的广泛重视和研究, 在实际中也得到大量的应用。图像分割包括目标轮廓、阈值化、图像区分或求差、目标检测、目标识别、目标跟踪等技术。 从大的方面来说,图像分割方法可大致分为基于区域的方法、基于边缘的方法、区域与边缘相结合的方法,以及在此基础上的采用多分辨率图像处理理论的多尺度分割方法。 其中基于区域的方法采用某种准则,直接将图像划分为多个区域。而基于边缘的方法则通过检测包含不同区域的边缘,获得关于各区域的边界轮廓描述,达到图像分割的目的,而区域与边缘相结合的方法通过区域分割与边缘检测的相互作用,得到分割结果。 图像分割中基于区域的方法主要有直方图门限法、区域生长法、基于图像的随机场模型法、松弛标记区域分割法等。本文主要讨论基于区域分割的区域生长法。区域生长是一种古老的图像分割方法,最早的区域生长图像分割方法是由Levine等人提出的。该方法一般有两种方式,一种是先给定图像中要分割的目标物体内的一个小块或者说种子区域,再在种子区域基础上不断将其周围的像素点以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的目的;另一种是先将图像分割成很多的一致性较强,如区域内像素灰度值相同的小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的,典型的区域生长法如T. C. Pong等人提出的基于小面(facet)模型的区域生长法,区域生长法固有的缺点是往往会造成过度分割,即将图像分割成过多

图像分割算法研究与实现

中北大学 课程设计说明书 学生姓名:梁一才学号:10050644X30 学院:信息商务学院 专业:电子信息工程 题目:信息处理综合实践: 图像分割算法研究与实现 指导教师:陈平职称: 副教授 2013 年 12 月 15 日

中北大学 课程设计任务书 13/14 学年第一学期 学院:信息商务学院 专业:电子信息工程 学生姓名:焦晶晶学号:10050644X07 学生姓名:郑晓峰学号:10050644X22 学生姓名:梁一才学号:10050644X30 课程设计题目:信息处理综合实践: 图像分割算法研究与实现 起迄日期:2013年12月16日~2013年12月27日课程设计地点:电子信息科学与技术专业实验室指导教师:陈平 系主任:王浩全 下达任务书日期: 2013 年12月15 日

课程设计任务书 1.设计目的: 1、通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力; 2、掌握Matlab使用方法,能熟练运用该软件设计并完成相应的信息处理; 3、通过图像处理实践的课程设计,掌握设计图像处理软件系统的思维方法和基本开发过程。 2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等): (1)编程实现分水岭算法的图像分割; (2)编程实现区域分裂合并法; (3)对比分析两种分割算法的分割效果; (4)要求每位学生进行查阅相关资料,并写出自己的报告。注意每个学生的报告要有所侧重,写出自己所做的内容。 3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕: 每个同学独立完成自己的任务,每人写一份设计报告,在课程设计论文中写明自己设计的部分,给出设计结果。

基于区域生长法的图像分割论文原稿

基于区域增长法的图像分割 王春者 (信工学院电子信息工程专业) 摘要 图像分割是一种重要的图像分析技术。对图像分割的研究一直是图像技术研究中的热点和焦点。图像分割的目的是将图像划分为不同的区域,基于区域生长是以直接找寻区域为基础的分割技术。 本论文首先简单介绍图像分割的主要方法,然后重点介绍一种基于区域增长法的图像分割方法,该方法是根据同一物体区域内象素的相似性质来聚集象素点的方法,从初始区域(如小邻域或甚至于每个象素)开始,将相邻的具有同样性质的象素或其它区域归并到目前的区域中从而逐步增长区域,直至没有可以归并的点或其它小区域为止。区域内象素的相似性度量可以包括平均灰度值、纹理、颜色等信息。 关键词:图像分割;区域增长法;基本算法

Abstract The image segmentation is an important technology of image processing. It is still a hot point and focus of image processing.The purpose is to image segmentation image is divided into different areas,based on region growing segmentation technique is based on the direct search for regional. This paper first briefly introduce the main method of image segmentation, and then focuses on a method of image segmentation based on region growing method, the method is based on similar properties in the same region within the object pixel to pixel aggregation method, from the initial area (as regards neighborhood of each pixel, or even), the adjacent pixel having the same nature or other areas merge into the current so as to gradually increase the area of the region can merge up until no other point or small area. Similarity measure may include a region of the pixel values of the average gray, texture, color and other information. Key words:Image segmentation; region growing method; basic algorithm

基于区域生长的图像分割

安康学院 学年论文﹙设计﹚ 题目基于区域生长法的图像分割 学生姓名周东阳 2012020081 所在院(系)电子与信息工程系 专业班级电子信息工程2012级2班 指导教师余顺园 2015年6月25日

基于区域生长法的图像分割 作者:周东阳 安康学院电子与信息工程系电子信息工程专业12级,陕西安康 725000 指导教师:余顺园 【摘要】图像分割的目的是将图像划分为不同的区域,基于区域生长是以直接找寻区域为基础的分割技术。区域生长是一种根据事先定义的准则将像素或子区域聚合成为更大的区域的过程。基本方法是以一组“种子”点开始,将与种子点性质相似(诸如灰度级等)的相邻像素附加到生长区域的每个种子上。 区域生长的一个问题是用公式描述一个终止规则。基本上,在没有像素满足加入某个区域的条件时,区域生长就会停止。在此次课程设计中,在算法的设计上充分反映了这一点。在遍历图像的过程中调用函数testnei,测试i,j点处的邻域满足条件的像素。将每次新增长的种子点作为下次遍历的中心点,直到区域不再生长。 【关键词】区域生长种子点分割像素 Image segmentation based on region growing arithmetic Author:ZhouDongyang Grade three ,Class two,Major Electronic and Information Engineering ,Dept.,Ankang University,Ankang 725000,Shaanxi Directed by YuShunyuan Abstract:Image segmentation aims to divide the image into different areas, based on region growing is to find region-based segmentation techniques. Criteria defined in advance by the region growing is a pixel or sub-regional aggregate into bigger regional process. Basic method is based on a set of "seed" point, with seeds similar in nature (such as grayscale) adjacent pixels on each attach to the growth region of the seed. Region growing is one of the problems with formulas describing a termination rule. Basically, no pixels when you meet the conditions for joining a regional, regional growth will stop. In the design of this course, in algorithm design fully reflects that. Traverse the image function is called during testneitesting i,j

设计利用区域生长算法进行图像分割的程序

设计利用区域生长算法进行图像分割的程序 1、目的:把一幅图像划分成满足某种判据的一些区域,在这里形成一个二值图。 2、原理:首先确定每个区域中的某个已知点,加上与已知点相似的邻近点形成一个区域,在这里利用区域的均值。当邻近点与区域均值的差值的绝对值小于阈值T 时,即满足生长条件。方法是从种子点开始,在8连通方向上生长区域,当其邻近点满足生长条件,则就并入小快区域,当新的点被合并后再用新的区域重复这一过程,直到没有可接受的邻近点时该区域生成过程终止。 3、设计思路: 1)通过具体观察某幅图像的直方图,估计其确定种子点范围[S1,S2],并确定其阈值T; 2)透过对整幅图像的扫描,找出某个区域的一个种子点:(.)f x y 3)开始利用8连通方向,以该种子点为中心进行生成区域;[(),()]s r s θ |(,)(.)|diff f i j f x y T =-<(,)ave f i j = 4)继续用8连通方向,以该区域为中心,把邻近满足生长条件的点并入,生成新的区域; 1(,)k ave f i j k =∑ |(,)|diff f i j ave T ''=-< 5)重复4)步,直到不再存在邻近满足生长条件的点为止,该区域生成过程结束; 6)继续对图像进行扫描,寻找其他区域的一个种子点,按3)~5)的步骤进行 4、程序设计 根据下面的流程图可分为

区域生长算法实现流程图

5、程序 %district.m主函数 clear clc I = imread('bacteria.tif'); subplot(1,2,1) imshow(I) title('初始图像'); subplot(1,2,2) imhist(I) title('初始图像的直方图'); %透过该直方图确定种子满足S1~S2 的值(灰度值)和判定的依据阈值T S1=8;S2=70;T=33; f=double(I); [m,n]=size(I); shed1=zeros(3,round(m*n/2)); %存储区域生长方向上的点和该区域的均值的绝对差值和 该%点的坐标 sp1=0; % sp1 相当于指针,指向shed1 中的最后放入的值和坐标 shed2=zeros(2,m); %存储符合生长条件的点的坐标 sp2=0; % sp2 指针,指向shed2 中的最后放入点的坐标 Cut=zeros(size(f)); % Cut 为区域生长后的新图像 Cut=Cut+255; % Cut 矩阵初始值设为255 vb=0; %标记值,当vb=1 时,即要求重新计算已有的栈shed1(1,:) 的大小 for i=1:m for j=1:n if (f(i,j)>S1&f(i,j)

数字图像处理课设程设计-基于区域生长的图像分割

成绩 南京工程学院 课程设计说明书(论文) 题目基于区域生长的图像分割 课程名称数字图像处理 院(系、部、中心)通信工程学院 专业 班级 学生姓名 学号 设计地点 指导教师 设计起止时间:2010 年6月28日至2010年7月2日

录 【摘要】 (1) 一、课程设计名称 (1) 二、课程设计目标 (1) 三、总体设计 (1) 3.1 总体设计要点概括 (1) 3.2算法流程设计 (2) 四、功能描述 (3) 五、测试结果与分析 (3) 六、课程设计总结 (6) 七、参考文献: (7) 八、源程序: (7) 1

【摘要】 图像分割的目的是将图像划分为不同的区域,基于区域生长是以直接找寻区域为基础的分割技术。区域生长是一种根据事先定义的准则将像素或子区域聚合成为更大的区域的过程。基本方法是以一组“种子”点开始,将与种子点性质相似(诸如灰度级或衍射的特定范围)的相邻像素附加到生长区域的每个种子上。 区域生长的一个问题是用公式描述一个终止规则。基本上,在没有像素满足加入某个区域的条件时,区域生长就会停止。在此次课程设计中,在算法的设计上充分反映了这一点。在遍历图像的过程中调用函数testnei,测试i,j点处的邻域满足条件的像素。将每次新增长的种子点作为下次遍历的中心点,直到区域不再生长。 关键字:区域生长种子点分割 一、课程设计名称 基于区域生长的图像分割 二、课程设计目标 1、通过本次数字图像处理课程设计,加深我对数字图像处理的基本原理与方法的认 识,提高了我应用数字图像处理的方法解决实际问题的能力,达到理论与实际应用的结合。 2、通过课程设计,能够熟练运用Matlab完成图像处理任务。 三、总体设计 3.1 总体设计要点概括 区域生长是一种根据事先定义的准则将像素或子区域聚合成更大区域的过程。基本方法是以一组种子点开始,将与种子性质相似的相邻像素附加到生长区域的每个种子上。 区域生长算法的重点是:

Halcon中的区域生长算子

区域生长算法 分类:Halcon学习2010-08-05 09:24 5436人阅读评论(1) 收藏举报算法image测试 区域生长算法:既是根据事先定义的准则将像素或者子区域聚合成更大的区域。基本方法是以“一组”种子开始,将与种子性质相似(灰度级或颜色的特定范围)的相邻像素附加到生长区域的种子上。 Halcon中的区域生长算子(区域生长算法,将图象被分割为区域): regiongrowing( Image : Regions : Row, Column, Tolerance, MinSize : ) Row:被测试的区域的垂直距离 Column:被测试的区域的水平距离 Tolerance:能忍受的最大的灰度差距 MinSize:最小的输出区域

例:regiongrowing (Image, Regions, 3, 3, 6, 100)