c++ - 使用 Opencv C++ 对循环进行矢量化
问题描述
我的代码有很多这样的“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() 来复制整个块,而不是逐个像素地复制图像。这是否有效取决于您的变量类型。
也就是说,如果你想使用 OpenCV,它有一个优化的复制函数 copyTo()。通过将其与蒙版和/或 ROI 一起使用,您应该能够更快地复制图像。
推荐阅读
- vba - VBA Word - 根据第一个字母格式化单词的颜色
- excel - 根据名称在文件夹中查找下一个文件
- ruby-on-rails - 在谷歌云上托管一个 ruby 网络
- plsql - PL/SQL 匿名块已完成”但未显示结果
- spring - 为什么我的 logback Daily RollingFileAppender 没有滚动并且仍然附加到一个文件?
- python - 查看我的数据框的值是否是数组中的值之一
- .net - 使用 HTTPS 配置 WCF 时收到 404
- roku - MaskGroup 可以与除海报以外的节点一起使用吗?
- python - 在 python 的优化问题中缺少 2 个必需的位置参数
- python-2.7 - 根据键将字典转换为列表