快速打开1,-1数据文件为图片
Rapidly open 1,-1 data file as image
我正在从事一个项目,该项目生成的数据文件是数字方阵,1 或 -1。我需要将其可视化为图像,而我现在所做的是使用 Matlab 打开它们,matlab 函数 imshow
自动将这些矩阵绘制为单色黑白图像。
虽然使用 matlab 非常慢,但我想知道是否有一些 linux 程序可以让我从终端快速使用它,比如 imagemagick oneliner 或类似的东西。
这是文件的示例
-1 1 -1 -1 1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 1 1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
这就是图像
实际矩阵的顺序为 128x128
。
谢谢!
将您的数据转换为 "PBM" 格式很简单,即使使用文本编辑器也是如此,正如我在此处所做的那样。把“1”全部改成“0”,“-1”改成“1”,加一行表头"P1 8 8 1"(用实际宽高代替“8 8”)。这是执行此操作的单行脚本 matrix2pbm:
echo P1 1; sed -e "s/-1/z/g; s/1/0/g; s/z/1/g"
运行 它与
./matrix2pbm matrix.txt 8 8 > matrix.pbm
cat matrix.pbm
P1 8 8 1
1 0 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 0 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
PBM 格式是 Netpbm 图像格式之一 [http://en.wikipedia.org/wiki/Netpbm_format]
如果愿意,您可以使用 ImageMagick 或其他文件转换器将结果转换为其他格式:
convert matrix.pbm matrix.png
正如 emcconville 评论的那样,您可以用这个一行进行两种转换:
./matrix2pbm matrix.txt 8 8 | convert pbm:- matrix.png
我正在从事一个项目,该项目生成的数据文件是数字方阵,1 或 -1。我需要将其可视化为图像,而我现在所做的是使用 Matlab 打开它们,matlab 函数 imshow
自动将这些矩阵绘制为单色黑白图像。
虽然使用 matlab 非常慢,但我想知道是否有一些 linux 程序可以让我从终端快速使用它,比如 imagemagick oneliner 或类似的东西。
这是文件的示例
-1 1 -1 -1 1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 1 1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
这就是图像
实际矩阵的顺序为 128x128
。
谢谢!
将您的数据转换为 "PBM" 格式很简单,即使使用文本编辑器也是如此,正如我在此处所做的那样。把“1”全部改成“0”,“-1”改成“1”,加一行表头"P1 8 8 1"(用实际宽高代替“8 8”)。这是执行此操作的单行脚本 matrix2pbm:
echo P1 1; sed -e "s/-1/z/g; s/1/0/g; s/z/1/g"
运行 它与
./matrix2pbm matrix.txt 8 8 > matrix.pbm
cat matrix.pbm
P1 8 8 1
1 0 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 0 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
PBM 格式是 Netpbm 图像格式之一 [http://en.wikipedia.org/wiki/Netpbm_format]
如果愿意,您可以使用 ImageMagick 或其他文件转换器将结果转换为其他格式:
convert matrix.pbm matrix.png
正如 emcconville 评论的那样,您可以用这个一行进行两种转换:
./matrix2pbm matrix.txt 8 8 | convert pbm:- matrix.png