一种基于gpu并行选择式掩模平滑方法

文档序号:6634441阅读:576来源:国知局
一种基于gpu并行选择式掩模平滑方法
【专利摘要】一种基于GPU并行选择式掩模平滑方法,包括以下步骤:(1)将图像像素拷贝到显存中,并为图像处理分配所需要网格和线程块的规模;(2)启动kernel函数,遍历输入图像像素;(3)利用GPU并行计算出图像中每一个像素在9个模板领域点中的均值与方差;(4)在kernel函数中将得到像素点的方差进行排序得到最小方差,并将该最小方差对应的均值赋值给该像素点。本发明实现了选择式掩模平滑算法在GPU中的并行计算,加快了算法计算每一个像素在模板领域点得出均值与方差的运算速度,有效的提高了选择式掩模平滑算法对于图像噪声的处理速度。
【专利说明】一种基于GPU并行选择式掩模平滑方法

【技术领域】
[0001] 本发明属于图像处理【技术领域】,特别涉及图像噪声消除技术。

【背景技术】
[0002] 图像在成像、数字化和传输的过程中,难免会受到各种噪声源的干扰和影响而使 图像质量变差。图像噪声来自多方面,有系统外部的干扰,如电磁波或经电源串进系统内部 而引起的外部噪声,也有来自系统内部的干扰,如摄像机的热噪声、电器的机械运动而产生 的抖动噪声等川。这些噪声干扰使图像退化,质量下降。其表现为图像模糊,特征淹没,对 图像分析不利。因此,去除噪声、恢复原始图像是图像处理中的一个重要内容。消除噪声的 工作称之为图像平滑。
[0003] 图像平滑是一种实用的数字图像处理技术。一个较好的平滑处理方法应该既能消 除图像噪声,又不使图像边缘轮廓和线条变模糊,这是数字图像平滑处理要追求的目标。但 是由于噪声源众多,噪声种类复杂,所以相应的平滑方法也多种多样。我们可以将图像平滑 分为空间域图像平滑技术和频率域图像平滑技术。
[0004] 针对空间域图像平滑技术,国内外大量学者做出了大量研究,并且提出了领域平 均法,中值滤波法,选择式掩模平滑法等。但是,对于这几种方法依然有其的优缺点。领域 平均法计算简单,计算速度快。其缺点是降低噪声的同时使图像出现模糊,特别是在边缘和 细节处。而且在邻域越大时,增强去噪声能力会使图像的模糊程度变得更严重。中值滤波 容易去除孤立点、线的噪声,同时保持图像的边缘,它能很好地去除二值噪声,但对高斯噪 声无能为力。选择式掩模平滑法可以的减轻平滑带的模糊效应,从而使图像平滑边缘细节 清晰,但是,选择式掩模平滑法计算量大,耗时比较长,在处理高清图像平滑时速度比较慢。
[0005] 因此,国内外学者对于选择式掩模平滑法优化也作了大量研究。2002年,朱卫华等 提出了一种梯形掩模代替条形掩模的改进行选择式平滑方法。2009年,李金红等提出了基 于积分图像的快速选择掩模平滑算法。以上两种方法都是从掩模的选择和计算简化的角度 去对选择掩模平滑进行改进。这两种方法对于选择式平滑方法都有一定的改进效果,但是, 依然没有解决处理高清图像平滑时计算速度慢等问题。
[0006] GPU(GraphicProcessingUnit,图形处理单元)具有很好的并行处理能力,经过 2001年与2002年的两次重大变革,程序员能够灵活地编程控制GPU的顶点着色器与像素着 色器,使得GPU不再局限于最初的图形渲染加速。2006年NVIDIA公司为GPU引入统一的渲 染架构,自此,GPU能更加灵活方便地运用于通用计算领域。利用GPU可以实现计算的并行 化,从而大大的缩短计算时间,提高算法的执行效率。因此,利用GPU实现并行化计算已经 慢慢应用到图像处理技术中。
[0007] 虽然国内外学者已经对于图像的选择式掩模平滑算法进行了大量的研究并取得 了一定的成果。但是,对于图像进行选择式掩模平滑并行计算以往学者都没有进行大量的 研究与优化。因此,针对这一种情况,利用GPU对选择式平滑滤波算法进行并行计算可以 作为一个突破口,实现了加快选择式掩模平滑算法对于图像(特别是高清图像)噪声计算 速度的目的。
[0008] 由此,业界对能够实现并行化计算的选择式掩模平滑算法有所期冀。


【发明内容】

[0009] 本发明的目的是提供一种基于GPU并行选择式掩模平滑方法。所述方法基于GPU 并行化,实现了选择式掩模平滑算法在GPU中的并行计算且有效的提高了选择式掩模平滑 算法对于图像噪声的处理速度。
[0010] 本发明包括以下步骤:
[0011] (1)将图像像素拷贝到显存中,并为图像处理分配所需要网格(Grid)和线程块 (Block)的规模;
[0012] (2)启动kernel函数,遍历输入图像像素;
[0013] (3)利用GPU并行计算出图像中每一个像素在9个模板领域点中的均值与方差;
[0014] (4)在kernel函数中将得到像素点的方差进行排序得到最小方差,并将该最小方 差对应的均值赋值给该像素点。

【专利附图】

【附图说明】
[0015] 图1是本发明方法之步骤的流程图。
[0016] 图2是9个掩模模板分布图。
[0017] 图3是本发明实施例之图像的示意图。其中,(a)是算法处理前原始图像,(b)是 图像(a)通过选择式掩模算法在CPU平滑处理的图像,(c)是本发明实施例处理后的图像。
[0018] 图4是不同分辨率下图像在CPU与GPU运行选择式掩模算法计算速度的比较结 果。

【具体实施方式】
[0019] 结合附图,通过下文的述详细说明,可更清楚地理解本发明的上述及其他特征和 优点。
[0020] 参见示出本发明实施例的附图,下文将更详细地描述本发明。然而,本发明可以以 许多不同形式实现,并且不应解释为受在此提出之实施例的限制。相反,提出这些实施例是 为了达成充分及完整公开,并且使本【技术领域】的技术人员完全了解本发明的范围。
[0021] 由于本发明的方法实现并行选择式掩模平滑可以达到令人满意的效果,因此可以 实现加快算法计算每一个像素在模板领域点得出均值与方差的计算速度,有效的提高了选 择式掩模平滑算法对于图像噪声的处理速度。
[0022] 现参考图1,将图像像素拷贝到显存中,并且计算出所需要的线程块和网格数,遍 历图像像素并行计算出在9个掩模模板中的均值与方差,并以方差排序,将方差最小时所 对应的均值赋予当前点的像素。
[0023] 本实施例中,实现的具体步骤如下所示:
[0024] (1)通过函数readBmp(readPath)将图像数据读入内存缓冲区,采用CUDAAPI函 数cudaMallocO管理显存的分配,并通过变量error的值判定显存是否分配成功和函数 cudaGetErrorString()返回分配失败的错误信息。
[0025] (2)对于分辨率为bmpWidthXbmpHeight的图像,线程粗粒度需要的block的数目 可以如公式(1-1)得出:
[0026] nblock = (bimffidth/16)X(bmpHeight/16) (1-1)
[0027] Grid的大小为(bmpWidth/16,bmpHeight/16)。
[0028] (3)如图2所示,选择5X5窗口模板,在此窗口中以中心像素(i,j)为基准点制 件9个掩模模板,包括边长为1的正方形,4个五边形,4个六边形掩模。
[0029] (4)执行kernel函数chooseMaskGPU〈〈〈grid,block〉〉〉(d_iImageData,bmpHeig ht,bmpWidth,bmpHeight,biCount,d_oImageData)并行计算出每个掩模的均值与方差。均 值与方差的计算公式如式(1_2)与式(1-3)所不:
[0030] 均值的计算公式:

【权利要求】
1. 一种基于GPU并行选择式掩模平滑方法,其特征是包括以下步骤:(1)将图像像素拷 贝到显存中,并为图像处理分配所需要网格和线程块的规模;(2)启动kernel函数,遍历输 入图像像素;(3)利用GPU并行计算出图像中每一个像素在9个模板领域点中的均值与方 差;(4)在kernel函数中将得到像素点的方差进行排序得到最小方差,并将该最小方差对 应的均值赋值给该像素点。
2. 根据权利要求1所述的基于GPU并行选择式掩模平滑方法,其特征是通过函数 readBmp(readPath)将图像数据读入内存缓冲区,采用cudaAPI函数cudaMallocO管理显 存的分配,并通过变量error的值判定显存是否分配成功和函数cudaGetErrorStringO返 回分配失败的错误信息。
3. 根据权利要求1所述的基于GPU并行选择式掩模平滑方法,其特征是在每一个线程 块中分配16*16大小的线程数,对于分辨率为bmpWidthXbmpHeight的图像,线程粗粒度需 要的线程块的数目可以如公式(1-1)得出: nbi〇ck= (bimffidth/16)X(bmpHeight/16) (1-1) Grid的大小为(bmpWidth/16,bmpHeight/16)。
4. 根据权利要求1所述的基于GPU并行选择式掩模平滑方法,其特征是按如下步骤得 到图像每个像素点的均值与方差: (1) 选择5X5窗口模板,在此窗口中以中心像素(i,j)为基准点制件9个掩模模板, 包括边长为1的正方形,4个五边形,4个六边形掩模。 (2) 执行kernel函数chooseMaskGPU〈〈〈grid,block>>>(d_iImageData,bmpHeight,b mpWidth,bmpHeight,biCount,d_oImageData)并行计算出每个掩模的均值与方差;均值与 方差的计算公式如式(1_2)与式(1-3)所不: 均值的计算公式:
方差的计算公式为:
5. 根据权利要求1所述的基于GPU并行选择式掩模平滑方法,其特征是按如下步骤得 到图像平滑后对应的像素值: (1) 将每一个像素在9个掩模模板的方差进行排序,得到最小方差值,并且以最小方差 对应的均值作为当前像素点的像素值; (2) 遍历完所有像素点后,该图像的像素值均经边平滑处理,则将显存中的数据拷贝至 新分配的内存中,算法结束。
【文档编号】G06T5/00GK104408691SQ201410652173
【公开日】2015年3月11日 申请日期:2014年11月17日 优先权日:2014年11月17日
【发明者】洪向共, 刘浩, 吕向阳, 邹建 申请人:南昌大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1