OpenCV Mat的每个通道上的线性运算符

时间:2015-07-07 04:05:31

标签: c++ image opencv matrix

每个通道移位和缩放(线性操作)每个通道具有不同移位/比例值(浮点数)的最有效方法是什么?输入图像可以是任何数据类型,但输出矩阵需要是CV_32F。

我可以编写自己的for循环来执行此操作,类似于

function find_index($value) {
  foreach ($arr as $index => $index2) {
    $exists = array_search($value, $index2);
    if ($exists !== false) {
      echo "The result is {$index}, {$exists}";
      return true;
    }
  }
  return false;
}

,但我想知道与可能更优化的例程相比,这是否会很慢。支持缩放器操作,但在整个映像上,所以我不知道如何隔离给定的通道。我看了split,但是文档没有提到是否复制了内存。如果是,它肯定会变慢。有颜色转换的例程,它们类似,但当然只支持特定的转换。

可能有某种方式,类似于

out[i,j,k] = scale[i] * in[i,j,k] + shift[i]

最好,我想跳过创建一个中间矩阵。

0 个答案:

没有答案