プロジェクトでは、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 で要求されるように、両側の (少なくとも 1 つの) 空白で区切り文字\(
と区切り文字を囲んでいないため、このコマンドには構文エラーがあります。\)
ソース イメージへのリンクが提供されていないため、この修正されたコマンドの結果をテストすることはできません。
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