ImageMagick:沿一个轴非线性拉伸图像

Posted

技术标签:

【中文标题】ImageMagick:沿一个轴非线性拉伸图像【英文标题】:ImageMagick: Non-linear stretching an image along one axis 【发布时间】:2019-05-29 19:43:44 【问题描述】:

从 METEOR M-2 卫星下载图像时,图像在边缘附近被压缩。一个名为SmoothMeteor 的Windows 实用程序可以更正此问题。这个应用的问题是它只有windows,而且似乎没有批处理模式。

是否可以使用 ImageMagick 仅沿 X 轴拉伸图像,使中心没有拉伸,但越靠近边界,应用的拉伸越多?

此处提供了一个示例: 请注意地图的中心在很大程度上没有受到影响,但左侧边缘附近的云看起来比原来的要宽 4 倍。

我猜这就像一个枕形变换,但只在 X 轴上,但我不确定我是否在正确的轨道上。

【问题讨论】:

你试过给作者发邮件问问吗? 【参考方案1】:

你的平台是什么?如果在类 Unix(Linux、Mac OSX、Window 10 Unix 或 Windows w/Cygwin)上,那么我有一个名为 ImageMagick 的 bash shell 脚本,称为“xpand”,它可以满足您的要求。请参阅我的网站http://www.fmwconcepts.com/imagemagick/index.php

输入:

xpand -d 350 -m horizontal img.png result.png

-d 可以是尺寸或纵横比 (w:h)。我注意到我的方法(二阶拉伸)似乎比您的 SmoothMeteor 工具更能拉伸结果。

【讨论】:

不幸的是,我似乎无法运行它。尝试了来自卫星 (848x1280) 的图像并指定 -d 3:2 从未完成(100% CPU 超过 5 分钟),并且 -d 1480 给出了无效尺寸。这是有问题的图像i.imgur.com/d44Uxq1.jpg 和 smoothmeteor 的输出:i.imgur.com/Ytxz691.jpg @hjf。抱歉,我应该评论一下,但是我的脚本使用非常慢的 ImageMagick -fx 进行计算,并且您的图像非常大。所以运行时间会很长。我没有意识到你有这么大的图像。我在我的 Mac Mini 上运行它,它在大约 2 分钟内完成。您可以通过我的网站链接中的私人电子邮件地址与我联系。然后我可以将我的结果发送给你,看看你为什么不能运行它。那是-d 3:2。但是您的 -d 1480 宽度小于您的输入(1568x2384)。脚本不允许这样做。您的输入是 1568。

以上是关于ImageMagick:沿一个轴非线性拉伸图像的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick - 沿内部非透明对象边框分割透明度图像

OpenCASCADE中的Sweep扫掠算法

设置ImageMagick PNG图像背景颜色

ImageMagick 无法在 WSL 上将 PDF 转换为图像

对图像的仿射变换

使用 UIGestureRecognizer 沿 x 轴移动 UIImageView