2

我有一个典型的源图像,纵横比为 3:4。我还有一组坐标,我需要将图像映射到单独的图像中。坐标不是完美的矩形;如果有的话,它们会定义不规则的网格。

例如,(0,0) 可能映射到 (12,33)、(120,0) => (127,36)、(240,0)=>(226,13) 等。

我的目标是通过将源坐标映射到目标并应用失真来使我的源图像适合新形状。

有什么方法可以做到这一点?我正在使用.NET,但可以调用 ImageMagick。

编辑:根据要求,这是一张图片。左图是一张简单的照片,均匀细分(忽略我蹩脚的 MSPaint 技能)。右侧显示目标形状。我有右侧每个点的坐标。目标是将平面图像映射(投影?)到形状上,以便点对齐。

在此处输入图像描述

4

2 回答 2

2

我在我的网站 ( http://www.rubblewebs.co.uk/imagemagick/operators/distort.php )上有一些扭曲运算符的示例- 使用 php,但你会明白的。

您可能需要 shepards 方法。

$cmd = "$input -matte -virtual-pixel transparent".  
" -distort Shepards \"0,0 0,0  0,100 20,100 0,200".  
" 0,200 133,200 133,180 266,200 266,200 266,100".  
" 246,100 266,0 266,0 133,0 133,20\" ";  
exec("convert $cmd shepards.png");

在此处输入图像描述

于 2012-05-11T20:19:06.240 回答
2

查看 ImageMagick 的Freeform Distorts

于 2012-05-11T20:16:52.363 回答