错误: 命名空间"cv::cuda"没有成员"resize"。

3

我已经成功地使用 WITH_CUDA=on 构建了 OpenCV。但我仍然遇到了这个错误:error: namespace "cv::cuda" has no member "resize"。很奇怪,IDE 提示该命名空间中有一个 resize 函数,但在编译时却失败了。有人知道如何解决这个问题吗?

#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/video/background_segm.hpp"
#include "opencv2/video/tracking.hpp"
#include "opencv2/cudev/ptr2d/gpumat.hpp"
#include "opencv2/cudev/ptr2d/resize.hpp"
#include "newfile.h"

using namespace cv;
using namespace std;

int test() {
    cv::Mat LoadedImage;
    cv::cuda::GpuMat Im;

    LoadedImage = imread("in.jpg", IMREAD_COLOR);
    Im.upload(LoadedImage);
    cv::cuda::resize(LoadedImage, LoadedImage, cv::Size(), 0.5, 0.5, cv::INTER_NEAREST);

    imwrite("Step4a.JPG", LoadedImage);
    return 0;
}

5
根据此文档,你应该包含#include <opencv2/cudawarping.hpp> - john
@john 非常有帮助,谢谢。我之前尝试过将其包含在.cpp文件中,但出现了一堆奇怪的错误。 - Pittie
我按照文档操作了,但是没有成功。 - KansaiRobot
1个回答

4
正如@john指出的那样,我应该#include <opencv2/cudawarping.hpp>来解决这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接