[发明专利]基于CUDA的快速双边滤波方法在审
申请号: | 201410727796.0 | 申请日: | 2014-12-03 |
公开(公告)号: | CN104732490A | 公开(公告)日: | 2015-06-24 |
发明(设计)人: | 陈强;曾炫杰;孙权森;谭海鹏;朱文斌 | 申请(专利权)人: | 南京理工大学 |
主分类号: | G06T5/00 | 分类号: | G06T5/00;G06T1/20 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 朱显国 |
地址: | 210094 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 cuda 快速 双边 滤波 方法 | ||
1.一种基于CUDA的快速双边滤波方法,其特征在于包括以下步骤:
步骤1、计算空域高斯模板,模板大小定义为:(2N+1)×(2N+1),其中N为自然数;
步骤2、由CPU获取图像数据,并将数据保存在主机Host内存中;
步骤3、申请GPU内存空间,用于保存实现滤波方法所需的空域高斯模板、图像数据和结果图像数据;
步骤4、将Host内存中的图像数据和高斯模板数据复制到GPU的内存中;
步骤5、计算所需要的Thread线程数,然后设定计算所需要的Block线程块数;
步骤6、启动CUDA多线程,对图像数据做并行卷积模板运算,卷积模板包括空域高斯模板和值域高斯模板;
步骤7、将步骤6的计算结果从GPU中复制到Host内存中。
2.根据权利要求1基于CUDA的快速双边滤波方法,其特征在于:步骤1中所述的计算空域高斯模板矩阵,其公式为
空域高斯模板矩阵数据在CPU中完成计算,其中x,y表示图像像素点的坐标,i,j表示空域高斯模板对应的坐标,σd表示空域高斯模板的标准差。
3.根据权利要求1基于CUDA的快速双边滤波方法,其特征在于:步骤3中所述的申请GPU内存空间,申请GPU中纹理内存用于保存计算所需的空域高斯模板,申请GPU全局内存用于保存图像数据。
4.根据权利要求1基于CUDA的快速双边滤波方法,其特征在于:步骤4中所述的将Host内存中的图像数据和高斯模板数据复制到GPU的内存中,对于灰度图像直接调用CUDA函数完成数据的复制,对于彩色图像,将三个颜色通道作为三个图像矩阵数据,利用CUDA事件流的机制,进行图像数据的复制和传输。
5.根据权利要求1基于CUDA的快速双边滤波方法,其特征在于:步骤5中所述的计算Thread线程数和Block线程块数,利用CUDA的函数来查询当前 计算显卡中每一个Block中所包含的最大线程数,设其为C,设图像像素点个数为M×N,则Thread数为M×N,Block数为
6.根据权利要求1基于CUDA的快速双边滤波方法,其特征在于:步骤6中所述的卷积模板运算,其公式为
w(x,y,i,j)表示邻域内每个像素点的权重系数,在双边滤波中,权重系数是值域高斯模板wr(x,y,i,j)和空域高斯模板wd(x,y,i,j)的乘积,计算公式如下
w(x,y,i,j)=wd(x,y,i,j)×wr(x,y,i,j)
定义并行卷积运算公式如下
其中f'表示完成滤波计算后的图像数据,l表示图像数据像素点的数量,G表示卷积模板,i表示线程ID号,一个线程完成一个像素点的卷积运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学;,未经南京理工大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410727796.0/1.html,转载请声明来源钻瓜专利网。