私はプログラミングとLinuxの経験が不足しているので、あなたの助けが必要です。
私の状況は、xyz座標とグレースケール値に変換し、これらすべての画像をx、y、z、グレースケールを使用するテキストファイル(z座標、たとえばフォルダの最初の画像z = 0000、2番目の画像0001など)フォルダ内の画像数と同じz座標)。
私はこれを行いますが、一度に1つの画像に対してx、y座標、およびグレースケール値のみを追加するスクリプトがあります(非常に慣れていませんが、Image Magickで完了したようです)。
スクリプトは次のとおりです。
TXT イメージの正確な形式は変換コマンドによって定義されます。します。残すことができるコメントの数。
convert -depth 8 -colorspace RGB $1 txt:- | tail -n +2 | tr -cs '0-9.\n' ' ' | while read x y Gray junk; do if [ "$Gray" -eq 0 ]; then echo "$x,$y $Gray" done
これを実行するために、Linux端末に次のように入力しました。
chmod +x img.sh
その後(画像と同じ名前を選択しましたが、ファイル名として.txtを使用しました):
./img.sh pic0000.tif > pic0000.txt
私は一度にやろうとするためにラインを交換して変えようとしました。convert -depth 8 -colorspace RGB $1 txt:- |
そして
convert -depth 8 -colorspace RGB $* txt:- |
そして端末に入れると
chmod +x ./img.sh ./img.sh *.tif > *.txt
すべてのファイルをxyグレースケールとして1つのファイルに配置しますが、z値を追加することはできません。
ところで、txtファイルの作成に時間がかかります。
最後のXYZファイルの最初の行は次のようになります。
0 0 0グレースケール値1 0 0グレースケール値
最後のもの:
3095 2951400 グレー値
私にどんな手がかり、アイデア、解決策を与えることができますか?どんな助けでも大変感謝します。
ベストアンサー1
ImageMagickでより単純なスクリプトを使用してから、sed
出力を使用します。問題はZ画像を決定することです。
Z = 27の画像がDCM0027.tif
あり、1から420までの画像があるとします。
次に、数値に基づいてファイル名を生成し、ファイル自体を解析する必要があります。使いやすくするために、XYZ.txtファイルは増分式で生成されます。
#!/bin/sh
rm -f XYZ.txt
for i in $( seq 1 420 ); do
FILE=$( printf "DCM%04d.tif" )
convert -depth 8 -colorspace gray $FILE txt:- \
| sed -e "s/^\\([0-9]*\\),\\([0-9]*\\):.*gray(\\([0-9]*\\))/\1,\2,$i,\3/g' >> XYZ.txt
done
上記はスクリプトとして実行する必要があります(img.shなどに保存されています)。数値1と420をパラメータ化する必要がある場合は、$ 1と$ 2に置き換えることができます。その後実行されますimg.sh 1 420
。
もう一つの可能性は、スクリプト自体をリダイレクトすることです。
#!/bin/sh
for i in $( seq $1 $2 ); do
FILE=$( printf $3 )
convert -depth 8 -colorspace gray $FILE txt:- \
| sed -e "s/^\\([0-9]*\\),\\([0-9]*\\):.*gray(\\([0-9]*\\))/\1,\2,$i,\3/g'
done
2つの数字が必要ですそしてファイル名の構造と保存されたデータリダイレクト:
img.sh 1 500 "DCM%04d.tif" > XYZ.txt
「%04d」は「4桁の数字、0で埋められる」を意味します。つまり、0001、0002、0003です。番号がDCM1FILE.tif、DCM9FILE.tif、DCM10FILE.tifなどの場合は、「DCM%dFILE.tif」をファイルモードで使用できます。
最後に、フォルダに.tifファイルの数が必要な場合は、次のものを使用できます$( ls *.tif | wc -l )
(より簡単な方法がある可能性があります)。
img.sh 1 $( ls DCM*.tif | wc -l) "DCM%04d.tif" > XYZ.txt