10

さまざまなサイズと縦横比の画像がたくさんあります。それらのモンタージュを作ることは可能ですか?共通の行を構成する画像に共通の高さを設定した後、それらを行に最適に配置することを意味します。もちろん、画像の縦横比を変更することは許可されておらず、最終的なモンタージュから画像を省略したり、複製したりすることはできません。

通常、モンタージュ内の画像行の高さは等しくありませんが、それらの値は (統計的な意味で) 最小限の範囲内に維持する必要があります。つまり、行の高さの平均値からの標準偏差を最小限に抑える必要があります。

モンタージュの希望の幅と高さが与えられます (a.)

または、幅と許容される比率の範囲 (または同等の高さの範囲) が指定されます (b.)。たとえば、幅は 1024 ピクセルである必要があり、高さは w/h < 0.9 および w/h > 0.8 である必要があります。

1.) 画像は、最初の固定された順序でモンタージュにパックする必要があります。この場合、モンタージュで新しい画像行を開始する必要がある後の画像を見つける必要があります (簡単です)。

2.) 画像の順序は変更できます。この場合、各画像がモンタージュにパックされたときに、最終的な行の高さの標準偏差を最小化する順列を見つける必要があります (難しい)。

例えば:

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

12

あなたの質問を正しく理解しているかどうかわかりません。

これが私が作るものです。異なるサイズの 8 つの異なる画像があると仮定します。デモ目的で、ImageMagick にこれらを 8 つの異なるカラー パッチとして作成させます。

convert -size  90x90  xc:yellow  y.png
convert -size 120x120 xc:red     r.png
convert -size  60x210 xc:green   g.png
convert -size 150x180 xc:blue    b.png
convert -size  30x60  xc:cyan    c.png
convert -size 150x90  xc:magenta m.png
convert -size  90x120 xc:gray    Gr.png
convert -size 120x90  xc:black   K.png

これらのパッチは、さまざまな方法でモンタージュできます。

convert \( y.png r.png g.png  b.png +append \)  \
        \( c.png m.png Gr.png K.png +append \)  \
       -append                                  \
       -mattecolor lightblue                    \
       -frame 1x1                               \
        montage0.png

このコマンドは、異なるパッチをスケーリングしません。それらを 2 行 4 パッチに配置し、元のサイズでモンタージュします。空白は、パッチが「収まらない」場所です。

モンタージュ0.png

convert \( y.png r.png g.png  b.png -resize x60 +append \)  \
        \( c.png m.png Gr.png K.png -resize x60 +append \)  \
       -append                                              \
       -mattecolor lightblue                                \
       -frame 1x1                                           \
        montage1.png

このコマンドは、すべての異なるパッチを 60 ピクセルの共通の高さにスケーリングし (それぞれの縦横比を保持)、2 行 4 パッチに配置します。

montage1.png

convert \( y.png r.png g.png  b.png -resize 60x +append \)  \
        \( c.png m.png Gr.png K.png -resize 60x +append \)  \
       -append                                              \
       -mattecolor lightblue                                \
       -frame 1x1                                           \
        montage2.png

このコマンドは、すべての異なるパッチを共通の幅 60 ピクセル (それぞれの縦横比を維持したまま) にスケーリングし、4 つのパッチを 2 行に配置します。

montage2.png

convert \( y.png r.png g.png  b.png -resize 60x80\! +append \)  \
        \( c.png m.png Gr.png K.png -resize 60x80\! +append \)  \
       -append                                                  \
       -mattecolor lightblue                                    \
       -frame 1x1                                               \
        montage3.png

このコマンドは、すべての異なるパッチを 60x80 ピクセルの寸法にスケーリングし (元の縦横比を上書きします)、それらを 2 行 4 パッチに配置します。

montage3.png

于 2014-12-17T02:15:14.660 に答える