【问题标题】:OpenCV 3 OpenCL UMat drawing functionsOpenCV 3 OpenCL UMat 绘图函数
【发布时间】:2016-03-04 10:26:30
【问题描述】:

我正在升级到 OpenCV 3 并使用 UMat T_API OpenCL 容器而不是 Mat。

看起来像 rectangle(Mat img, ...) 这样的绘图函数没有 UMat 重载。我想尽可能多地在 UMat 世界中工作以在框架上绘图,而不必将 UMat 转换回 Mat 进行绘图和显示。

谁能给我在 UMat 上绘制矩形的最有效方法?还是我必须转换回 Mat 才能在上面绘图和显示?

【问题讨论】:

    标签: c++ opencv opencl opencv3.0


    【解决方案1】:

    不幸的是,如果不从 GPU 内存传输数据,就无法在 UMat 上绘制东西。 您可以使用以下方案进行绘图:

    cv::Mat draw_img = img.getMat(cv::ACCESS_WRITE);
    cv::rectangle(draw_img, ...);
    draw_img.release();
    

    请注意getMat(cv::ACCESS_WRITE) 需要同步。所以为了获得GPU处理的最大收益,最好避免绘制操作或将其分组为一个块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      相关资源
      最近更新 更多