
これには簡単なコマンドがあるはずだと確信していますが、見つけることができませんでした。
基本的に、写真を別の写真の下に重ねずにつなぎ合わせたいと考えています。また、理想的には、同じ下部画像をつなぎ合わせる 200 枚の上部画像に対してこのプロセスを自動化できるコマンドが必要です。すべての画像の幅は同じなので、変換は必要ありません。
「stitch -below top.png bottom.png」のようなプログラムを探しています。Montage などのオプションを調べましたが、要求どおりに動作しないようです。アドバイスをお願いします。
答え1
まず、ターミナルを開いて、sudo apt-get install imagemagick
.
ここで、すべての画像を同じフォルダに配置して、ターミナルから簡単にアクセスできるようにします。 上部の画像はすべて独自のフォルダに配置し、下部の画像を別の場所に保存して、作業を簡素化します。
と入力しcd DIRNAME
、DIRNAME を写真が保存されているフォルダーの名前に置き換える必要があります。たとえば、/home/mark/collating
私はこの目的で を使用します。
シェルが適切なフォルダーにあり、imagemagick がインストールされたので、以下を使用して画像を結合します。
convert -append image1.jpg image2.jpg output.jpg
これにより、image1 と image2 という名前の 2 つの画像が取得され、image2 が image1 の下部に貼り付けられ、結果が output.jpg という名前のファイルとして保存されます。
これを自動化するには、このようなスクリプトを使用できます。変数を変更して、適切な場所を指すようにする必要があります。
#! /bin/bash
# Replace the values of these variables with the locations of your tops and the bottom.
# The output directory must already exist!
# "~/" is a shortcut for your home dir, FYI.
TopsDir="~/collating/tops" #Only the TOP images should be in this folder!
BottomImg="~/collating/bottom.png"
OutputDir="~/collating/complete"
[ -d "$TopsDir" -a -d "$OutputDir" ] && [ -f "$BottomImg" ] || { echo "One of the paths you supplied wasn't valid."; exit 1;}
cd "$TopsDir"
for TopImg in *; do
convert -append "$TopImg" "$BottomImg" "$OutputDir/$TopImg"
done
これをコピーしてgeditまたはテキストエディタに貼り付け、変数を編集する正しいフォルダを指すようにします。(または、下の画像のファイル) として保存しますcollator.sh
。ホームディレクトリに保存すると、次の手順で便利です。
次に、ターミナルを開いて、ファイルを保存した場所に移動します。(ホーム ディレクトリに保存した場合は既にそこにいますが、そうでない場合は と入力しますcd /path/to/your/location
) と入力してchmod +x collator.sh
、ファイルに実行権限を与えます。
これで作業は完了です。スクリプトを実行するように
入力すれば./collator.sh
完了です。