【问题标题】:Vectorize For Loops using Opencv C++使用 Opencv C++ 对循环进行矢量化
【发布时间】:2020-08-26 15:58:51
【问题描述】:

我的代码有很多这样写的“for”循环:

for (size_t img = 0; img!=m_nbofImage; img++) 
  {
     for (size_t i = 0; i!=image_size; i++) 
       {
          dataImg[img* image_size+i]=data_matImg[i];
        }

为了提高我的代码的性能,我想使用Opencv但我不怎么做。

在您看来,如何优化此循环以提高性能? 非常感谢任何帮助。

【问题讨论】:

  • 请添加理解这个sn-p所需的代码。 dataImg 和 data_matImg 应该是什么?你想达到什么目的?是什么让你觉得这很慢?对你来说“慢”是多少?你分析过你的代码吗?

标签: c++ performance opencv for-loop optimization


【解决方案1】:

您应该使用 memcpy() 复制整个块,而不是逐个像素地复制图像。这是否有效取决于您的变量类型。

也就是说,如果你想使用 OpenCV,它有一个优化的复制函数 copyTo()。通过将它与蒙版和/或 ROI 一起使用,您应该能够更快地复制图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    相关资源
    最近更新 更多