c++ - 使用 Opencv C++ 对循环进行矢量化

标签 c++ performance opencv for-loop optimization

我的代码有很多这样的“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 但我不怎么做。
在您看来,如何优化此循环以提高性能?
任何帮助是极大的赞赏。

最佳答案

例如,您应该使用 memcpy() 复制整个 block ,而不是逐个像素地复制图像。这是否有效取决于您的变量类型。
也就是说,如果你想使用 OpenCV,它有一个优化的复制函数 copyTo()。通过将其与蒙版和/或 ROI 一起使用,您应该能够更快地复制图像。

关于c++ - 使用 Opencv C++ 对循环进行矢量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63601373/

相关文章:

c++ - 将 multimap 转换为一组集合

sql - 使用 VIEW 进行 SELECT 操作可以提高性能吗?

performance - 用于地理空间查询的 MongoLab 上的 MongoDB 性能

Python + opencv :ValueError: setting an array element with a sequence

c# - 在 C# 中使用 Camshift

c++ - 均衡 HSV 图像的直方图

c++ - 从对象函数调用返回 int(基本)

c++ - Rcpp - 如何在 C++ 代码中使用分布函数

python - 与 anydbm 相比,带有 Python 的 sqlite 慢得不合理

java - "If"语句,常量相等