当前位置: 首页 > 专利查询>武汉大学专利>正文

一种均值漂移图像分割算法的并行化方法技术

技术编号:4062460 阅读:617 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及图像分割技术领域,尤其涉及一种均值漂移图像分割算法的并行化方法。本发明专利技术包括将图像的区域自动或手动划分成多个子区域,通过缓冲区存取数据分别对每个子区域内的像素进行均值漂移滤波,记录每个像素的收敛模态点坐标位置,对每个像素点P1根据其收敛模态点坐标位置查找位于此坐标位置上的像素点P2并记录下P1,而后从P2开始重复查找和记录过程,直至查找到的像素点的坐标位置和其收敛模态点的位置相等,将这个位置的值赋给所有记录下的像素点,使用区域生长与合并算法得到最终的图像分割结果。本发明专利技术对均值漂移分割算法进行并行化处理,增强了处理效率,降低了对运行所需硬件设备的要求,提高了算法的实用性。

【技术实现步骤摘要】

本专利技术涉及图像分割
,尤其涉及一种均值漂移图像分割算法的并行化方法
技术介绍
图像分割算法是图像处理技术应用的重要内容之一,而均值漂移分割算法是目前实际应用较多、比较成熟的图像分割算法之一。此外由于均值漂移分割算法在运行中需要将图像数据一次性全部读入内存,同时需要保存图像的滤波、聚类等中间结果,在此过程中需要占用大量的内存资源。另外,由于此算法需要通过迭代查找样本点中的局部密度极大值点,计算量巨大,影响了算法在实用中的效率。克服这两种困难的一个手段就是对均值漂移分割算法以并行计算方式实现。参考文献1提供了一个实例来实现对均值漂移分割算法以并行计算方式。但是,由于均值漂移分割中是通过迭代的方式查找局部密度极大值点直到收敛,最后找到的收敛点可能远离查找的起始点。如果像通常并行化图像处理算法时那样并行化均值漂移分割算法,简单的将图像分成数块后对每一块分别处理并在最后将处理结果合并,会造成分割区域的不完整。参考文献1:吴炜,沈占锋等.《均值漂移高分辨率遥感影像多尺度分割的集群实现》[J].计算机工程与应用,2009.45(034):p.7-9
技术实现思路
针对上述存在的技术问题,本专利技术的目的是提供一种均值漂移图像分割算法的并行化方法,以解决直接对图像分块后进行均值漂移分割后再合并结果的并行化计算方式造成的分割结果不正确的技术问题。为达到上述目的,本专利技术采用如下的技术方案:①根据图像的大小自动或手动划分成N个子区域,其中N≥2;②分别对划分得到的所述子区域内的像素逐个进行均值漂移滤波处理,记录每个像素的收敛模态点坐标位置;③将步骤②得到的结果合并为一个表结构,其中表的关键字为像素的坐标位置,数据项为像素的收敛模态点的坐标位置;④建立一个空的记录R,在第3步得到的表结构的基础上,对图像上的一个像素点,以其坐标位置P1,在表中查找其收敛模态点的坐标位置P2,记录下P1的值到R中,将P2的值赋给P1,并重复查找与记录过程,直至查找到的像素点的坐标位置和其收敛模态点的坐标位置相等,记这个坐标位置的值为PEnd;⑤更新表中的数据,将表中所有关键字在R中的记录项的收敛模态点坐标位置赋予值PEnd;⑥对图像上所有像素都进行第④、⑤步操作;-->⑦使用区域生长算法将具有相同收敛模态点的像素合并为区域,完成分割。所述步骤①划分之后得到的子区域之间没有交集,所有子区域的并集等于图像的区域。所述步骤②中的均值漂移滤波处理,通过缓冲区方式读取图像数据进行处理。所述缓冲区方式读取图像数据包括以下子步骤:A.申请一块内存作为内存缓冲区,用于读取一定范围的图像数据:将范围的长宽分别记为BufferWidth和BufferHeight,图像的波段数记为BandNum,像素的一个波段的值占用的字节数为ByteNum;那么申请的内存的大小就为BufferSize个字节,其中BufferSize=BufferWidth×BufferHeight×BandNum×ByteNum;B.将图像区域的宽度、高度分别记为imgWidth和imgHeight,当前均值漂移滤波所要处理的数据点或模态点的位置坐标为(Px,Py),在均值漂移滤波的过程中根据当前查找局部密度极大值点所需要读入的像素范围调整缓冲区中读入的图像数据。所述步骤B进一步包括以下子步骤:-记均值漂移分割算法中空间带宽的大小为SpaBandWid,判断当前查找密度极大值点所需读取的像素的覆盖范围SpatialExtent:若Px-SpaBandWid/2≥0,记Left=Px-SpaBandWid/2,否则记Left=0;若Px+SpaBandWid/2≤imgWidth,记Right=Px+SpaBandWid/2,否则记Right=imgWidth;若Py-SpaBandWid/2≥0,记Top=Py-SpaBandWid/2,否则记Top=0;若Py+SpaBandWid/2≤imgHeight,记Bottom=Py+SpaBandWid/2,否则记Bottom=imgHeight;其中Left,Right,Top,Bottom分别是像素覆盖范围的左、右、上、下边界;-判断图像上在范围SpatialExtent内的数据是否已被读入缓冲区中:如果数据已经读入,则不做处理,如果数据不在缓冲区中,则以坐标(Px,Py)为中心读入图像上BufferWidth×BufferHeight大小的矩形范围内的数据。所述步骤⑦进一步包括以下子步骤:(a)新建一个与图像大小相同的标记图像用于记录合并后的区域,首先将所有的像素标记为未处理;(b)在标记图像上按由左向右,由上之下的顺序查找像素的标记值,记录找到的第一个标记为未处理的像素,将此像素标记为一个新的区域索引值,记为RegIndx;(c)由这个像素开始查找其领域像素,记录下收敛模态点与此像素的收敛模态点相同的领域像素;(d)对步骤(c)中记录下的领域像素都标记为RegIndx,而后对这些像素重复步骤(c);(e)重复步骤(c)、(d),直到找不到具有相同模态点的领域像素为止;(f)如果标记图像上仍然存在标记为未处理的像素,则返回步骤(b);否则,结束。本专利技术具有以下优点和积极效果:1)使均值漂移分割算法适用于并行环境,提高了结果的正确性;2)方法简单、实现容易均值漂移分割算法的并行化;-->3)增强了处理效率,降低了对运行所需硬件设备的要求,提高了算法的实用性。附图说明图1是本专利技术提供的均值漂移图像分割算法的并行化方法的流程图。具体实施方式均值漂移方法是一种基于密度梯度上升的非参数统计迭代方法,它使数据空间内的每一个点“漂移”到密度函数的局部极大值点,通过不断迭代这个漂移的过程找到密度函数的最大值点。本专利技术提供的均值漂移图像分割算法的并行化方法,包括以下步骤,参见图1所示:1、根据图像的大小自动或手动划分为N个子区域,N≥2;该步骤划分之后得到的子区域之间没有交集,所有子区域的并集等于图像的区域。2、利用缓冲区方式读取图像数据,分别对划分得到的每一个子区域内的像素逐个进行均值漂移滤波处理,记录每个像素的收敛模态点坐标位置,此处进行并行计算处理,每一个子任务处理一个子区域内的像素。收敛模态点也即数据空间内密度函数的最大值点。将数据点的坐标也作为数据空间的两个维度,分别记为H、V维;通过不断迭代均值漂移过程直至收敛就得到了收敛模态点,收敛模态点在H、V维上的数值就是收敛模态点的坐标。子任务获取图像数据的方式采用缓冲区读取,具体步骤如下:(1)申请一块内存作为内存缓冲区,用于读取一定范围的图像数据:这个范围可以自己定义,将范围的长宽分别记为BufferWidth和BufferHeight,图像的波段数记为BandNum,像素的一个波段的值占用的字节数为ByteNum;那么申请的内存的大小就为BufferSize个字节,其中BufferSize=BufferWidth×BufferHeight×BandNum×ByteNum;(2)将图像区域的宽度、高度分别记为imgWidth和imgHeight,当前均值漂移滤波所要处理的数据点或模态点的位置坐标为(Px,Py),在均值漂移滤波的过程中根据当前查找局部密度极大值点所需要读入本文档来自技高网...
一种均值漂移图像分割算法的并行化方法

【技术保护点】
一种均值漂移图像分割算法的并行化方法,其特征在于,包括以下步骤:①根据图像的大小自动或手动划分成N个子区域,其中N≥2;②分别对划分得到的所述子区域内的像素逐个进行均值漂移滤波处理,记录每个像素的收敛模态点坐标位置;③将步骤②得到的结果合并为一个表结构,其中表的关键字为像素的坐标位置,数据项为像素的收敛模态点的坐标位置;④建立一个空的记录R,在第3步得到的表结构的基础上,对图像上的一个像素点,以其坐标位置P↓[1],在表中查找其收敛模态点的坐标位置P↓[2],记录下P↓[1]的值到R中,将P↓[2]的值赋给P↓[1],并重复查找与记录过程,直至查找到的像素点的坐标位置和其收敛模态点的坐标位置相等,记这个坐标位置的值为P↓[End];⑤更新表中的数据,将表中所有关键字在R中的记录项的收敛模态点坐标位置赋予值P↓[End];⑥对图像上所有像素都进行第④、⑤步操作;⑦使用区域生长算法将具有相同收敛模态点的像素合并为区域,完成分割。

【技术特征摘要】
1.一种均值漂移图像分割算法的并行化方法,其特征在于,包括以下步骤:①根据图像的大小自动或手动划分成N个子区域,其中N≥2;②分别对划分得到的所述子区域内的像素逐个进行均值漂移滤波处理,记录每个像素的收敛模态点坐标位置;③将步骤②得到的结果合并为一个表结构,其中表的关键字为像素的坐标位置,数据项为像素的收敛模态点的坐标位置;④建立一个空的记录R,在第3步得到的表结构的基础上,对图像上的一个像素点,以其坐标位置P1,在表中查找其收敛模态点的坐标位置P2,记录下P1的值到R中,将P2的值赋给P1,并重复查找与记录过程,直至查找到的像素点的坐标位置和其收敛模态点的坐标位置相等,记这个坐标位置的值为PEnd;⑤更新表中的数据,将表中所有关键字在R中的记录项的收敛模态点坐标位置赋予值PEnd;⑥对图像上所有像素都进行第④、⑤步操作;⑦使用区域生长算法将具有相同收敛模态点的像素合并为区域,完成分割。2.根据权利要求1所述的均值漂移图像分割算法的并行化方法,其特征在于:所述步骤①划分之后得到的子区域之间没有交集,所有子区域的并集等于图像的区域。3.根据权利要求1所述的均值漂移图像分割算法的并行化方法,其特征在于:所述步骤②中的均值漂移滤波处理,通过缓冲区方式读取图像数据进行处理。4.根据权利要求3所述的均值漂移图像分割算法的并行化方法,其特征在于:所述缓冲区方式读取图像数据包括以下子步骤:A.申请一块内存作为内存缓冲区,用于读取一定范围的图像数据:将范围的长宽分别记为BufferWidth和BufferHeight,图像的波段数记为BandNum,像素的一个波段的值占用的字节数为ByteNum;那么申请的内存的大小就为BufferSize个字节,其中BufferSize=BufferWidth×BufferHeight×BandNum×ByteNum;B.将图像区域的宽度、高度分别记为imgWidth和imgHeight,当前均值漂移滤波所要处理的数据点或模态点的位置坐标为(Px,Py),在均值漂移滤波的过程中根据当前查找局部密度极大值点所需要读...

【专利技术属性】
技术研发人员:江万寿姚璜
申请(专利权)人:武汉大学
类型:发明
国别省市:83[中国|武汉]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1