【问题标题】:Best way to handle image with multiple sub-images in Emgu+OpenCV?在 Emgu+OpenCV 中处理具有多个子图像的图像的最佳方法?
【发布时间】:2014-04-11 17:09:00
【问题描述】:

我正在开发一个使用 Emgu 和 OpenCV 的 C# 应用程序,两者都是 2.9.0 版。我是 OpenCV/Emgu 的初学者,我需要一些帮助才能开始。

我有一个包含多个子图像的大图像。每个子图像都包含许多需要用 OpenCV 以不同方式处理的区域。

大图每秒更新几次。我打算使用 pInvoke 和 memcpy 来更新大图像的位图。为了避免多次复制操作,我希望子图和大图共享像素数据,这样在大图更新时会自动获取新的像素数据。

子图像将在多个并行线程中同时处理。

我需要知道的是组织大图像与子图像和要处理的区域的最佳方法,这样我就可以通过一次调用 memcpy 来更新像素,然后在不同线程上处理子图像中的区域。

【问题讨论】:

    标签: c# opencv emgucv


    【解决方案1】:

    您没有解释为什么要使用较大图像的子图像而不是使用几个经典图像,所以我认为这是有充分理由的。

    我认为这样做的唯一方法是垂直堆叠子图像。实际上,OpenCV 图像在内存中逐行存储,因此使子图像与大图像共享像素数据的唯一方法同时能够有效地处理子图像,如果子图像图像和大图像具有相同的行。如果这样做,您可以使用Mat::rowRange() 提取Mat 类型的子图像,然后您可以随意处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多