我有一个宽高比为 3:4 的典型源图像。我还有一组坐标,需要将图像映射到单独的图像中。坐标不是完美的矩形;如果有的话,它们定义了一个不规则的网格。
例如,(0,0) 可能映射到 (12,33)、(120,0) => (127,36)、(240,0)=>(226,13) 等
我的目标是通过将源坐标映射到目标并应用扭曲来使源图像适合新形状。
有哪些方法可以实现这一目标?我正在使用 .NET,但我可以调用例如ImageMagick。
编辑:根据要求,这是一张图片。左图是一张简单的照片,均匀分割(忽略我蹩脚的 MSPaint 技能)。右侧显示目标形状。我有右侧每个点的坐标。目标是将平面图像映射(投影?)到形状上,以使点对齐。
最佳答案
我的网站上有一些扭曲运算符的示例 ( 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");
关于image - 将图像映射到一组坐标上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556956/