Я изменяю размеры этой тестовой картинки:
Mat im = Mat::zeros(Size(832*3,832*3),CV_8UC3);
putText(im,"HI THERE",Point2i(10,90),1,7,Scalar(255,255,255),2);
по стандарту
cv::resize(im,out,Size(416,416),0,0,INTER_NEAREST);
и по версии CUDA изменения размера:
static void gpuResize(Mat in, Mat &out){
double k = in.cols/416.;
cuda::GpuMat gpuInImage;
cuda::GpuMat gpuOutImage;
gpuInImage.upload(in);
const Size2i &newSize = Size(416, in.rows / k);
//cout << "newSize " << newSize<< endl;
cuda::resize(gpuInImage, gpuOutImage, newSize,INTER_NEAREST);
gpuOutImage.download(out);
}
Время измерения показывает, чтоcv :: resize в 25 раз быстрее. Что я делаю неправильно? Я на видеокарте GTX1080ti, но такую же ситуацию наблюдаю и на Jetson NANO. Может быть, есть какие-то альтернативные методы для изменения размера изображения быстрее, чем cv :: resize с аппаратным ускорением nvidia?