【发布时间】:2012-08-29 20:35:08
【问题描述】:
对于一个项目,我正在尝试创建图像的透视变形以匹配 DVD 盒正面模板。所以我想使用 ImageMagick (CLI) 自动执行此操作,但我很难理解这种转换的数学方面。
convert \
-verbose mw2.png \
-alpha set \
-virtual-pixel transparent \
-distort Perspective-Projection '0,0 0,0 0,0 0,0' \
box.png
这段代码是一个空的坐标集,我已经彻底阅读了文档,但我似乎无法理解什么参数代表什么点。文档给了我变量和名称,我不知道它们的实际含义(也许对数学策划者更有用)。因此,如果有人可以就这个主题向我解释(视觉上更喜欢,或者给我一个有用信息的链接),因为我不知道我在做什么。只是玩弄这些参数对这项工作是行不通的,我需要计算这些点。
在这里,您将找到我正在尝试实现的目标的简单图像(使用 CLI 工具):
更新:
convert \
-virtual-pixel transparent \
-size 159x92 \
-verbose \
cd_empty.png \
\(mw2.png -distort Perspective '7,40 4,30 4,124 4,123 85,122 100,123 85,2 100,30'\) \
-geometry +3+20 \
-composite cover-after.png
给我作为输出:
cd_empty.png PNG 92x159 92x159+0+0 8-bit sRGB 16.1KB 0.000u 0:00.000
convert: unable to open image `(mw2.png': No such file or directory @ error/blob.c/OpenBlob/2641.
convert: unable to open file `(mw2.png' @ error/png.c/ReadPNGImage/3741.
convert: invalid argument for option Perspective : 'require at least 4 CPs' @ error/distort.c/GenerateCoefficients/807.
convert: no images defined `cover-after.png' @ error/convert.c/ConvertImageCommand/3044.
Kurt Pfeifle 更正:
该命令存在语法错误,因为它没有按照 ImageMagick 的要求在每一侧将 \( 和 \) 分隔符(至少一个)空白包围!
由于没有提供指向源图像的链接,我无法测试此更正命令的结果:
convert \
-virtual-pixel transparent \
-size 159x92 \
-verbose \
cd_empty.png \
\( \
mw2.png -distort Perspective '7,40 4,30 4,124 4,123 85,122 100,123 85,2 100,30' \
\) \
-geometry +3+20 \
-composite \
cover-after.png
【问题讨论】:
-
我说得更远了,我现在使用点透视扭曲,这更容易理解。但是它给了我语法错误。但对我来说,我似乎完全遵循文档规则。我已将我的代码附加到上面的示例中。
-
请提供(链接)您的一个示例输入图像,今晚晚些时候我会更仔细地查看它...
-
啊...我可以立即看到 one 语法错误:
\(和\)分隔符 *需要 被包围每个空白!我会相应地更新您的问题。 -
Windows 中的语法一样吗?
标签: imagemagick command-line-interface perspective