赞
踩
在图像处理中,我们可以通过计算两个相同大小、灰度图像的归一化相关系数判断图像的相关性大小。其取值范围在[-1,1]之间,-1表示图像不相关,1表示图像完美相关。
该方法在模板匹配中经常使用,通过计算模板图像与输入图像子集的相关性信息,判断图像中是否包含该模板,如果在某个位置处强相关,则返回匹配位置。只适合图像内容未发生旋转,形变,缩小放大等情况。即只有平移。
归一化互相关的流行源于其幅度的独立性(amplitude independence),这就意味着即使两幅图像的亮度不同,但对于其统计信息也是稳定的。
来看看公式:
其中I和T,表示图像和模板,\bar{T}为模板像素的品均值,\bar{I}为图像中对应模板范围的像素的平均值。
归一化互相关计算的优化方案,为了避免平均值计算,采用加和手法预先求出统计量,一下是计算公式。
这里使用sum(T)/N 和sum(I)/N 代替\bar{T}和\bar{I},并在分子分母同时乘N,产生一个完全使用加和来表示的系数。
所以预先要求的就是图像和模板的统计量SumI,SumT,SumIT,sumI^2,sumT^2
使用上述值计算分子分母即可。
一般情况下模板是固定的,所以可以预先计算模板的统计量和分母的子表达式。
一般采用双精度计算,此外乘以平方根的倒数,比除以平方根运算更快。
这样算法只需要计算3个值即可,SumI,SumIT,SumI^2。
在CUDA流处理器中,整数乘加运算通常使用FMA(Fused Multiply-Add)指令。FMA指令执行一个乘法操作,然后将结果与一个累加操作相结合,以单一的指令完成这两个操作。这有助于提高性能,减少指令的数量。
浮点数乘加运算也可以通过FMA指令来实现,其中操作数是浮点数。这使得在单个指令中执行乘法和加法,从而提高了执行效率。
cuda中提供了以下几种将数据复制到gpu中的方法。
1.使用全局内存或纹理内存存储图像或者模板,(较大一些)
2.使用常量内存存储模板或者其他可能的特定模板参数(可达64kb)
3.使用共享内存来保存图像和或模板值以备重用(较小)。
未完结--等后续
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。