如何使用opencv的gpu库呢?我这两天一直在搞这个事情,环境的配置见上文(转载),这里我先举个简单的例子,实现这样的功能:host读入一幅图像,加载到GPU上,在GPU上复制一份然后下传到host上,显示出来即可。
// gpu_opencv.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/gpu/gpu.hpp> // GPU structures and methods
int main(){
cv::gpu::setDevice(0);
cv::Mat host_image = cv::imread("C:\\Users\\Administrator\\Documents\\Visual Studio 2010\\Projects\\gpu_opencv\\1.jpg");
cv::Mat host_result(host_image.rows,host_image.cols,host_image.channels());
cv::gpu::GpuMat device_image1;
device_image1.upload(host_image); //allocate memory and upload to GPU
cv::gpu::GpuMat device_image2;
device_image1.copyTo(device_image2); //allocate memory and GPU-GPU copy
device_image2.download(host_result); //download data
cv::imshow("location",host_result);
cv::waitKey(0);
}