【问题标题】:convert arm_compute::Image to cv::Mat将 arm_compute::Image 转换为 cv::Mat
【发布时间】:2018-03-01 23:42:04
【问题描述】:

我有很多基于 open cv 的代码,但是 Arm Compute 库可以通过多种方式提高性能,所以我想将一些 arm 计算库代码集成到我的项目中。有没有人尝试在两个相应的 Image 结构之间进行转换?如果是这样,你做了什么?或者有没有一种方法可以共享指向底层数据缓冲区的指针,而无需复制图像数据,只需适当地设置步幅和标志?

【问题讨论】:

  • 您认为 Arm Compute Library 中哪些具体功能比 OpenCV 优化得更好?
  • 我在创建图像金字塔方面获得了大约 4 倍的性能,在哈里斯角检测方面获得了 3 倍的性能,并且可能在光流方面提高了 20%。这是 arm 计算和 NEON 优化的 opencv 之间的比较。
  • 好的,这令人印象深刻。感谢您抽出宝贵时间回复。

标签: opencv machine-learning arm computer-vision neon


【解决方案1】:

我能够配置与我的 cv::Mat 属性相对应的 arm_compute::Image,分配内存,并将其指向我的 cv:Mat 的数据部分。

这样,我可以使用 arm_compute 有效地处理我的图像,并维护我在项目其余部分中拥有的 opencv 基础架构。

// cv::Mat mat defined and initialized above
arm_compute::Image image;

image.allocator()->init(arm_compute::TensorInfo(mat.cols, mat.rows, Format::U8));
image.allocator()->allocate();
image.allocator()->import_memory(Memory(mat.data));

【讨论】:

    【解决方案2】:

    ACL 18.05 或更高版本的更新

    你需要实现IMemoryRegion.h

    我为此创建了一个要点:link

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2014-05-07
      • 2011-06-07
      • 2016-04-13
      • 2011-10-23
      相关资源
      最近更新 更多