对于一个项目,我正在尝试创建图像的透视失真以匹配 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