0

我对使用 GPU 加速的 OpenCV 中的卷积函数有疑问。使用 GPU 的卷积速度大约快 3.5

运行时:

convolve(src_32F, kernel, cresult, false, cbuffer);

但是缺少图像边框(在cresult中)

否则结果非常好(内核大小为60x60)

谢谢

4

1 回答 1

1

这就是卷积的工作方式。

它将每个像素的值计算为周围像素的加权平均值。所以,如果你考虑每边 30 个像素,对于所有比 30 个像素更接近图像边界的像素,卷积是没有定义的。

在过滤功能的 CPU 实现中,那些缺失的像素会根据给定的策略(复制、镜像、空白等)用虚假值进行补充。

您可以做的是在更大的矩阵中手动填充所需的值,过滤大的矩阵,然后将其裁剪回来。为此,您可以使用 gpu::copyMakeBorder() 函数。

于 2011-12-19T08:20:12.070 回答