图像处理:归一化相关性
1. 引言
在图像处理领域,归一化相关性是一种常用的技术,用于在图像中查找与给定模板匹配的区域。本文将介绍几种基于 CUDA 的归一化相关性实现方法,并对它们的性能进行分析。假设像素为 8 位灰度值,CUDA 实现中使用纹理来处理与模板进行比较的图像,原因如下:
- 纹理单元能优雅且高效地处理边界条件。
- 纹理缓存可在重用时聚合外部带宽,因为在计算附近的相关性值时会发生重用。
- 纹理缓存的二维局部性与相关性搜索算法的访问模式非常匹配。
接下来将探讨使用纹理和常量内存存储模板的权衡。
2. 简单的纹理 - 纹理实现
2.1 实现原理
第一个归一化互相关的实现使用纹理单元读取图像和模板的值。该实现未经过优化,甚至没有预先计算模板统计信息的优化,但易于理解,可作为更高级优化实现的基础。
2.2 代码实现
__global__ void
corrTexTex2D_kernel(
float *pCorr, size_t CorrPitch,
float cPixels,
int xOffset, int yOffset,
int xTemplate, int yTemplate,
int wTemplate, int hTemplate,
float xUL, float yUL, int w, int h )
{
size_t row = blockIdx.y*blockDim.y + threadIdx.y;
size_t col
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



