我试图读取图像,将其转换为uMat并进行处理。无论是否在OpenCV 3.0中使用新的T-API,我都会这样做。我能够构建库和logcats说OpenCL工作。比较输出CPU / GPU时,它有所不同。 CPU中的拉普拉斯算子看起来像预期的那样,#34;算法"在OCL / uMat方式大多是黑色,只有少数功能可用。由于内存从GPU转移到Java,这是一个问题吗?
CPU-代码:
GetData()
GPU-代码:
ocl::setUseOpenCL(false);
Mat cpuFrame;
String path = "/storage/emulated/0/DCIM/100ANDRO/";
String filename = "DSC_0581.JPG";
String filename_result = "DSC_0581_cpu_processed.JPG";
Mat cpuBW;
Mat cpuBlur;
Mat cpuEdges;
cpuFrame = imread(path+filename);
startTimer=clock();
cvtColor(cpuFrame, cpuBW, COLOR_BGR2GRAY);
GaussianBlur(cpuBW, cpuBlur, Size(1, 1), 1.5, 1.5);
Canny(cpuBlur, cpuEdges, 0, 30, 3);
stopTimer = clock();
imwrite(path+filename_result, cpuEdges);
有什么想法吗?