OpenCV关于万达平台搭建重映射map_x, map_y的疑惑

  

OpenCV中什么万达平台搭建论坛:haozbbs.com Q1446595067是重映射就不赘述了,主要是对源码中map_x, map_y有些疑惑,图像是如何进行重映射的呢?

  

上下变换的部分源码:

  
 <代码>垫map_x, map_y;
  map_x.create (srcimg.size (), CV_32FC1);
  map_y.create (srcimg.size (), CV_32FC1);
  for (int i=0; i (i, j)=static_cast (j);
  map_y.at (i, j)=static_cast (srcimg。行,我);
  }
  } 
  

开始看老半天不理解重映射原理,后来把map_x, map_y内的值输入后,大概知道了。

  

假设对一张10 * 10的图片进行上下重映射,

  

根据map_x.at (i, j)=static_cast (j);map_x作用是记录列坐标,

  

根据map_y.at (i, j)=static_cast (srcimg。行,我);map_y作用是记录行坐标。

  

输出map_x map_y:

  

map_x:

  

map_y:

  

我们可以看的到,在x方向从左到右逐渐增大排列,在y方向上到下减小排列,

  

将map_y, map_x组合,以坐标形式输出,则结果为

  

而原图的坐标为:

  

对比发现,原图坐标和map_y, map_x组合坐标发生了上下翻转。

  

然后根据坐标,把原图坐标对应的像素点一一映射到转换图上,就是上下翻转变换后的图像,这也是图片重映射的原理

  

其他的变换应该同理。

OpenCV关于万达平台搭建重映射map_x, map_y的疑惑