我的编程经验有限,我需要你的帮助。
我所处的情况是我有一堆黑白 .tiff 图像(每个 10 Mb 大约 400 个),我需要将其转换为 xyz 坐标加上灰度值,并将所有这些图像编译在一个文本文件中使用 x,y,z,灰度(z 坐标,这样:文件夹的第一张图像 z=0000,第二张图像 0001...与文件夹中的图像一样多的 z 坐标)。
我有一个脚本(我很不熟悉,但我认为它是用 Image Magick 完成的)它可以做到,但一次只能处理一个图像,并且只添加 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 灰度放在一起,但我无法添加 z 值。
顺便说一句,创建txt文件需要很长时间。
最终 XYZ 文件的第一行必须是,例如:
0 0 0 value in greyscale
1 0 0 value in greyscale
...
and the last:
3095 2951 400 value in greyscale
你能给我任何线索、想法或解决方案吗?任何帮助将不胜感激。