OpenCV 3.4:CPU 和 CUDA 中调整大小的结果在 C++ 中不匹配

OpenCV 3.4: the result of resize in CPU and CUDA are not match in C++

我正在使用带有 C++ 的 OpenCV 来调整帧的大小

以下是我在CPU

中使用的代码
cv::resize(in_mat, out_mat, out_mat.size(), 0, 0, cv::INTER_LINEAR);

CUDA的代码如下

cv::cuda::resize(dev_in_mat, dev_out_mat, dev_out_mat.size(), 0, 0, cv::INTER_LINEAR, stream);

问题是,两者的输出不同。为什么会这样?

这是 OpenCV 中的一个已知问题。 查看问题报告 here

目前似乎有两个版本,一个有 npp(旧版),另一个没有(新版):

legacy versionnewer version

似乎这个问题是一个活跃的问题,并且已经上升到 priority:normal 这意味着我们应该很快就会看到一个修复,只要关注那个线程,你就会没事!

希望我有所帮助,这是我第一次 post SO :D

编辑:

要在没有 NPP 的情况下构建,必须在 OpenCV 中构建一个独立于主分支的分支:

查看更新版本 here

  1. Git 克隆/下载为 Zip
  2. 按照页面上的说明构建 OpenCV

如果从这个分支重新安装 opencv-contrib 没有修复它,那么它是 opencv 中的一个错误,你必须等待有人更新它 here