工具/软件:Linux
您好!
我们将使用 OpenCL 加快基于 am5728平台的 OpenCV、 因此 我设计了一个简单的测试应用程序、该过程如下:
1) 1)从输入 文件中读取左右两幅图像
2) 2)调用并执行 StereoBM 算法并获取视差图像
3) 3)调用 minMaxLoc 函数以将视差图像形式 CV_16S 类型转换为 CV_8u 类型或调用 getMat ()函 数以获取 MATT 格式数据结构以供下一个进程使用。
我 发现、如果我启用 OpenCL、并且迟滞 BM 算法 的运行速度快于禁用 OpenCL、 但 minMaxLoc()或 getMat ()需要近2秒的时间,这很奇怪,因为如果我不启用只需0.1ms 的 OpenCL,我认为因为 umat 是一个 TAPI,所以主机和设备都具有访问权限,不会 进行数据移动或传输, 但结果显示我的想法是错误的。
测试应用程序和日志文件请查看附件!
有没有 OpenCV/OpenCL 专家会给我详细解释、我在这个问题上堆栈很长时间。