如何在C#或C ++中进行Mesh-Warp图像处理

时间:2013-11-25 20:19:35

标签: c# c++ opencv image-processing matrix

如何在图像上执行'网格扭曲'以重新映射像素的位置。

这是一个ascii艺术的例子。左边是带有3x3控制点矩阵的输入图像,右边是处理过的图像,图像是“网格扭曲”,因此控制点位于不同的位置。

  640x480 image         640x480 image
+--------------+      +--------------+
|     2        |      |1     2     3 |
| 1        3   |      |              |
|              |      |              |
|      5       |  ==> |4     5     6 |
| 4         6  |      |              |
|              |      |              |
| 7     8    9 |      |7     8     9 |
|              |      |              |
+--------------+      +--------------+

我看过OpenCV,试过它的calibrateCamera(),但我正在寻找更加随意/自由风格的重映射。 OpenCV有重映射(),但如果我理解正确,它需要一个矩阵映射所有像素而不是一个较小的控制点矩阵。也许OpenCV能够生成OpenCV的remap()可以使用的矩阵。理想地,控制点矩阵将是N×M,例如, 5高x 9宽或甚至任意一组控制点。我不需要重新映射颜色或强度 - 只需像素位置。我不仅限于OpenCV。

0 个答案:

没有答案