最近车队准备做感知层,问题很多,现在问题来了。传统的打开图片的方法都是用cpu,现在用gpu来打开图片,这样做无疑速度更快,并且可以更快速的处理图片。
经过取官方帮助文档上查找,发现在opencv2.x版本的gpu的库消失了。经过查找GpuMat发现原来gpu,变成现在的cuda的文件了,经过查找可以看到cuda的文件在#include<opencv2/core/cuda>文件里面,他的命名空间也变成了cva::cuda:: ,测试代码为 :
#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/core/cuda.hpp"
int main (int argc, char* argv[])
{
try
{
cv::Mat src_host = cv::imread("file.png", CV_LOAD_IMAGE_GRAYSCALE);
cv::cuda::GpuMat dst, src;
src.upload(src_host);
cv::cuda::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);
cv::Mat result_host;
dst.download(result_host);
cv::imshow("Result", result_host);
cv::waitKey();
}
catch(const cv::Exception& ex)
{
std::cout << "Error: " << ex.what() << std::endl;
}
return 0;
}
当然编译的时候需要将库文件放进去 g++ -o test `pkg-config --cflag --libs opencv`.