我正在寻找一个优雅的方式来实现这一点。基本上我有一个m×n的矩阵。每个单元格表示像素值,行和列表示图像的像素行和像素列。查找单元格的周围值的UBLAS矩阵?
由于我基本上映射点从HDF文件,与它们对应的像素值沿。我们基本上有很多空像素。填充有0
现在我需要做的就是把周围细胞的平均,以平均像素值的出来丢失的细胞。现在
,我可以蛮力攻击,但它变得丑陋快。有没有这种优雅的解决方案?
我正在寻找一个优雅的方式来实现这一点。基本上我有一个m×n的矩阵。每个单元格表示像素值,行和列表示图像的像素行和像素列。查找单元格的周围值的UBLAS矩阵?
由于我基本上映射点从HDF文件,与它们对应的像素值沿。我们基本上有很多空像素。填充有0
现在我需要做的就是把周围细胞的平均,以平均像素值的出来丢失的细胞。现在
,我可以蛮力攻击,但它变得丑陋快。有没有这种优雅的解决方案?
有一个著名的优化,这种过滤问题。
像这样:
for (i = 0; i < h; ++i) for (j = 0; j < w-1; ++j) A[i][j+1] += A[i][j]; for (i = 0; i < h-1; ++i) for (j = 0; j < w; ++j) A[i+1][j] += A[i][j] for (i = 0; i < h; ++i) for (j = 0; j < w-N; ++j) A[i][j] -= A[i][j+N]; for (i = 0; i < h-N; ++i) for (j = 0; j < w; ++j) A[i][j] -= A[i-N][j];
这样做是:
这需要4个操作每个细胞来计算总和,而不是蛮力8(假设你正在做一个3x3平均过滤器)。
很酷的事情是,如果你使用普通的二进制补码算术,你不必担心在第一两遍任何溢出;他们在最后两场比赛中取消了比赛。
的主要问题是在这里利用所有可用内核和缓存效益分析。
您可能有兴趣检查卷积的快速实现。
不过,既然你有升压这样做,你可以检查这是如何this Boost example
我beleive你只改变卷积核为您专门的工作完成。