2016-06-01 12 views
1

私はbashスクリプティングの初心者です。ループ内に3〜3個の別個の変数を追加する

GNUのbashのバージョン4.3.42(1)-release(x86_64版-pc-linux-gnuのよう)

のXubuntu 15.04

これは困惑し、私を持っていると私は解決策は簡単だと思うと私は行方不明です何か基本的なものですが、私は一週間この作業に取り組んできました。

このコードスニペットは、R G Bチャンネルに分割され、個別に処理される任意の数の画像の画像処理ルーチンの最後にあります。

ファイルは、チャンネルが元の画像の0.tiff 1.tiffなどから分離された順に接頭辞が付けられます。次に、次のように再結合します。

その後、取得するために3でRGBの値をインクリメントし、最初の画像チャネル0 1 2を組み合わせて、だから、100個以上のRGBチャネル

 R G B 
image1 0 1 2 ... and so on 
image2 3 4 5 ... 
image3 6 7 8 ... 

が存在する可能性があるため、RGBに名前を変更しても解決しません次の画像シーケンス3 4 5と続きます。

3つのグレーチャンネルは、チャンネルの正しいアライメントとカラー画像の生成によって正確な証拠を組み合わせています。

forループは0 1 2を結合し、残りは失敗します。私はシンタックスがfor行の問題だと思っています - おそらく変数R G Bを囲んでいますが、変数を囲んでも違いはありません。

それ以外の場合は、R G B変数の再割り当てでは3?

私は通常アウトこの種のものを働かせることができるが、私はそれで終わりになってきた - ので、質問...

R=0 
    G=1 
    B=2 

    echo "$R, $G, $B" 

for i in {$R $G $B}; do convert $R.tiff $G.tiff $B.tiff -set colorspace sRGB -combine RGB_%d_$NAME.tiff 

    let "R=$R+3" 
    let "G=$G+3" 
    let "B=$B+3" 

    done 
私は、このような((NEWVALUE = $として新しい変数を命名してみてくださいでした

R + 3))、それをRR = $ newvalueに代入する - GとBについては同じだが、変更はない。最初のイメージのみを処理します。

ありがとうございます。

+0

最高の価値は何ですか? – 123

+0

必要なだけ多くの典型的なセット90 - 120 – GeorgeC

+0

私はあなたの質問だったと思っています。あなたは変数に金額を持っていますか、何かを数えますか? – 123

答えて

1

変換の仕組みがわからない、または問題がある場合は3つの変数すべてを3つずつ増やすために、ループのCスタイルを実行することができます。

あなたのスクリプトに問題が拡大(そう3回)の各要素について、あなただけのループということです R<100

ための33個の値を持っていると仮定すると

for ((R=0,G=1,B=2;R<=100;R+=3,G+=3,B+=3));do 

convert $R.tiff $G.tiff $B.tiff -set colorspace sRGB -combine "RGB_%d_$((x++)).tiff" 

done 

+0

imagemagicks convertコマンドでは、さまざまな演算子を使用できます。主な機能です。この場合、色空間を設定し、入力としてリストされた画像を組み合わせます。 – GeorgeC

+0

@GeorgeCこれはうまくいかないのですか? – 123

+0

最初の3つのチャンネルはOKです。残りの部分は動作しません。 – GeorgeC

関連する問題