本文介绍了如何使用Mat的数据指针创建GPUMat实体?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用Mat的指针创建GPUMat实体?

How can I use Mat's pointer to create the GPUMat entity?

以下我的实现是错误的.

The following of my implementation is wrong.

#include<opencv2/opencv.hpp>

#include "opencv2/gpu/gpu.hpp"
//using namespace cv;
int main()
{
    //Mat img = imread();
    cv::Mat mSource = cv::imread("C:\\New Folder\\1.jpg");
    cv::gpu::GpuMat gpuInput(mSource.rows, mSource.cols, CV_32FC1, mSource.data, cv::Mat::AUTO_STEP);       

    cv::gpu::GpuMat  mGTarget;
    cv::gpu::resize(gpuInput, mGTarget, cv::Size(0, 0), 0.5, 0.5);

    cv::Mat mTarget;
    mGTarget.download(mTarget);

    cv::imwrite("C:\\New Folder\\5.jpg", mTarget);
}

推荐答案

使用GpuMat::uploadGpuMat::download函数. upload函数以cv::Mat作为参数,并将主机数据上传到设备.

Use the GpuMat::upload and GpuMat::download functions. The upload function takes a cv::Mat as parameter and uploads the host data to device.

GpuMat gpuInput;
gpuInput.upload(mSource);

这篇关于如何使用Mat的数据指针创建GPUMat实体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 23:03