1、透射变换
输入的图像为gpumat 但是H要是cup中cv::Mat
cv::cuda::warpPerspective(currImg_cu,img_cu,H,cv::Size(img_cu.cols,img_cu.rows));
2、基本预算
加减乘除,大小比较,在gpumat中其使用cv::cuda::add,cv::cuda::compare等实现:
例如实现mask_cu = mask_tmp_cu>0:
cv::cuda::compare(mask_tmp_cu,0,mask_cu,CMP_GT);
3、GpuMat
GpuMat和Mat的数据组织形式一致,但是由于GPU的特殊性,所以在很多操作前,是要实现申请好空间,例如:
cv::cuda::warpPerspective(currImg_cu,img_cu,H,cv::Size(img_cu.cols,img_cu.rows));
将currImg_cu通过变换矩阵H进行变换,将结果存入img_cu,所以事先要申请好img_cu的空间如:
cv::cuda::GpuMat img_cu = cv::cuda::GpuMat(img_cu.rows,img_cu.cols,CV_8UC3);