私はプログラミングの経験が限られており、あなたの助けが必要です.
私がいる状況は、xyz 座標とグレースケール値に変換し、それらすべてを 1 つのテキスト ファイルのみにコンパイルする必要がある、白黒の .tiff 画像 (それぞれ 10 Mb の約 400) のスタックがあることです。 x、y、z、グレースケール(z座標、このように:フォルダーの最初の画像z = 0000、2番目の画像0001 ...フォルダー内の画像と同じ数のz座標)。
私はスクリプトを持っています (私はかなり慣れていませんが、Image Magick で行われていると思います)。これは、一度に 1 つの画像に対してのみ実行でき、x、y 座標とグレースケールの値のみを追加します。しかし、z はありません。
ここに投稿した以前のバージョンから変更されたスクリプトは次のとおりです (グレースケールを使用し、必要な値のみを格納するため)。
## The exact format of the TXT image is defined by the convert command, then 'tail' is used to junk the header,
## 'tr' to character replace every non-number character with a single space, so that the later 'while' can read
## it easily, junking any comment numbers that may have been left.
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 value in greyscale
1 0 0 value in greyscale
...
and the last:
3095 2951 400 value in greyscale
それを行うための手がかり、アイデア、または解決策を教えてください。どんな助けでも心から感謝します。