【发布时间】:2009-11-03 13:39:20
【问题描述】:
我正在寻找一种优雅的方式来实现这一点。基本上我有一个 m x n 矩阵。其中每个单元格代表像素值,行和列代表图像的像素行和像素列。
因为我基本上映射了 HDF 文件中的点,以及它们对应的像素值。我们基本上有很多空像素。里面都是0。
现在我需要做的是取周围细胞的平均值,以平均出缺失细胞的像素值。
现在我可以强制执行此操作,但它会很快变得丑陋。有什么优雅的解决方案吗?
【问题讨论】:
我正在寻找一种优雅的方式来实现这一点。基本上我有一个 m x n 矩阵。其中每个单元格代表像素值,行和列代表图像的像素行和像素列。
因为我基本上映射了 HDF 文件中的点,以及它们对应的像素值。我们基本上有很多空像素。里面都是0。
现在我需要做的是取周围细胞的平均值,以平均出缺失细胞的像素值。
现在我可以强制执行此操作,但它会很快变得丑陋。有什么优雅的解决方案吗?
【问题讨论】:
这个过滤问题有一个众所周知的优化。
像这样:
对于 (i = 0; i这是做什么的:
每个单元格需要 4 次操作来计算总和,而蛮力计算需要 8 次(假设您正在执行 3x3 平均过滤器)。
很酷的一点是,如果您使用普通的补码算法,您不必担心前两次传递中的任何溢出;他们在最后两次传球中抵消了。
【讨论】:
这里的主要问题是利用所有可用的内核和缓存效率。
您可能对检查卷积的快速实现感兴趣。
但是,由于您使用 Boost 执行此操作,您可以在 this Boost example 中查看这是如何完成的
我相信你只需要为你的专业任务改变卷积核。
【讨论】: