将 arm_compute::Image 转换为 cv::Mat

Posted

技术标签:

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

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

【问题讨论】:

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

【讨论】:

以上是关于将 arm_compute::Image 转换为 cv::Mat的主要内容,如果未能解决你的问题,请参考以下文章

怎么用ABBYY将PDF转换为JPEG图像

将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组

怎么用ABBYY将PDF转换为JPEG图像

如果将一个NSObject从NSDictionary转换为NSString?

如何将“false”转换为 0,将“true”转换为 1?

在php中将 1 转换为 001 ,将 2 转换为 002 等,将 99 转换为 099 等 [重复]