如何用 rgb 图像绘制矩阵?
How to plot matrix with rgb image?
我想绘制 m*n
矩阵,其中的每个元素都是一个 rgb
三元组,如以下 gnuplot 代码片段(rgb 矩阵3*3
):
$cross << EODcross
255 0 0 0 0 0 255 0 0
0 0 0 0 0 0 0 0 0
255 0 0 0 0 0 255 0 0
EODcross
红底黑十字。如果需要,我可以更改列和颜色组件之间的分隔符。
我能否达到预期的避免 set palette rgbformulae i,j,k
并直接使用 $cross
数据?类似于:
plot '$cross' matrix with image rgb
如果不是,我可以传递 24 位宽的整数(当然,在文本表示中,即预先计算并转换为文本 r + 256 * (g + 256 * b)
或 b + 256 * (g + 256 * r)
值)。 i,j,k
三元组应该如何正确地将以上述形式表示的 rgb
值映射到调色板颜色 space?
似乎ascii矩阵数据和rgbimage不适合在一起。
如果您可以随意格式化输入数据,则将图像的每一列放入一个块中,用两个空行分隔块,如下所示:
$cross << EODcross
255 0 0
0 0 0
255 0 0
0 0 0
0 0 0
0 0 0
255 0 0
0 0 0
255 0 0
EODcross
然后像这样绘制十字:
plot $cross using -2:0:1:2:3 with rgbimage
using
部分中的数字-2和0分别对应伪列"block index"和"line within a block"。它们用作 x 和 y 值。 plot with rgbimage
样式需要 x,y,r,g,b
数据。
这是结果:
rgbimage
绘图样式需要五列,最后三列给出 [0:255] 范围内的红色、蓝色和绿色值。所以你可以使用任何 24 位整数表示颜色,因为你必须在绘图时自己提取颜色通道:
$data <<EOD
0xff 0 0xff00
0 0 0
0xffff 0 0xff00ff
EOD
r(x) = int(x) >> 16
g(x) = (int(x) >> 8) & 0xff
b(x) = int(x) & 0xff
plot $data matrix using 1:2:(r()):(g()):(b()) with rgbimage
我想绘制 m*n
矩阵,其中的每个元素都是一个 rgb
三元组,如以下 gnuplot 代码片段(rgb 矩阵3*3
):
$cross << EODcross
255 0 0 0 0 0 255 0 0
0 0 0 0 0 0 0 0 0
255 0 0 0 0 0 255 0 0
EODcross
红底黑十字。如果需要,我可以更改列和颜色组件之间的分隔符。
我能否达到预期的避免 set palette rgbformulae i,j,k
并直接使用 $cross
数据?类似于:
plot '$cross' matrix with image rgb
如果不是,我可以传递 24 位宽的整数(当然,在文本表示中,即预先计算并转换为文本 r + 256 * (g + 256 * b)
或 b + 256 * (g + 256 * r)
值)。 i,j,k
三元组应该如何正确地将以上述形式表示的 rgb
值映射到调色板颜色 space?
似乎ascii矩阵数据和rgbimage不适合在一起。
如果您可以随意格式化输入数据,则将图像的每一列放入一个块中,用两个空行分隔块,如下所示:
$cross << EODcross
255 0 0
0 0 0
255 0 0
0 0 0
0 0 0
0 0 0
255 0 0
0 0 0
255 0 0
EODcross
然后像这样绘制十字:
plot $cross using -2:0:1:2:3 with rgbimage
using
部分中的数字-2和0分别对应伪列"block index"和"line within a block"。它们用作 x 和 y 值。 plot with rgbimage
样式需要 x,y,r,g,b
数据。
这是结果:
rgbimage
绘图样式需要五列,最后三列给出 [0:255] 范围内的红色、蓝色和绿色值。所以你可以使用任何 24 位整数表示颜色,因为你必须在绘图时自己提取颜色通道:
$data <<EOD
0xff 0 0xff00
0 0 0
0xffff 0 0xff00ff
EOD
r(x) = int(x) >> 16
g(x) = (int(x) >> 8) & 0xff
b(x) = int(x) & 0xff
plot $data matrix using 1:2:(r()):(g()):(b()) with rgbimage