如何在图像上执行'网格扭曲'以重新映射像素的位置。
这是一个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。