我正在尝试使用opencv的ocl模块在android/ARM上运行图像处理应用程序。在某些情况下(android4.2.2/高通骁龙msm8930/Adreno TM305),它运行良好。
但在其他情况下(android4.4.2/rockchip RK3288/mali-T764;android4.4/sumsung exynos5410/powerVR SGX 544mp),也存在问题。CV::ocl::getOpenCLDevice()
显示没有opencl平台或设备。
我确信所有三个经过测试的系统都支持opencl。有人能告诉我这里出了什么问题吗?谢谢
好吧,我已经解决了这个问题。问题是一些android设备的文件系统中没有opencl-lib文件libopencl.so,或者该文件有不同的名称(例如libgles_Mali.so)。要使用opencl,我们应该首先设置环境。
具体来说,添加
setenv("OPENCV_OPENCL_BINARY","libGLES_Mali.so",0);
之前
cv::ocl::getOpenCLDevices()