Android上的OpenCV / OpenCL在imwrite()时表现出奇怪的行为

时间:2015-11-06 15:34:18

标签: android opencv opencl opencv3.0

我试图读取图像,将其转换为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);

有什么想法吗?

0 个答案:

没有答案