如何将结果 "map" 与给定的 "color_map" 相匹配?
How to match the resulting "map" with the given "color_map"?
我有一个名为imrgb的RGB图像,它的大小是320*512*3double.And我
还有 color_map = 64*3 double。我使用以下代码:
[X, map] = rgb2ind(imrgb, 256)
结果 X= 320*512 uint8,结果 map = 65*3 double。
结果 "map" 与给定的 "color_map" 完全不同。
如何解决这个问题?
"map" 的前几行如下所示:
0 0 0
0 0.125 1
0.56 1 0.439
1 0.125 0
0.188 1 0.812
1 0.749 0
0 0.7490 1
0.5019 0 0
0.7490 1 0.25098
给定 "color_map" 的前几行如下所示:
0 0 0.5625
0 0 0.6250
0 0 0.6875
0 0 0.7500
0 0 0.8125
0 0 0.8750
0 0 0.9375
0 0 1
0 0.0625 1
使用 rgb2ind
performs a colour quantization (the default is uniform quantization directly in RGB space and we also apply dithering 图像)将图像的特定数量的颜色(在您的情况下为 256),如果您未指定输入颜色图。 map
输出提供了一个颜色图,它使用图像的量化来最好地分割颜色 imrgb
。变量 X
为您提供 索引 ,其中每个像素映射到来自 map
变量的颜色图中。这实际上是颜色的查找 table。
这个 map
变量告诉我们应该将像素可视化为查找 table 中的哪种颜色。例如,post 中的上述调用将生成一个索引图像 X
,其索引从 1 到 256,而 map
将包含 256 行,其中每列都是红色的一部分(第一个列)、绿色(第二列)和蓝色(第三列)。比例在[0-1]
之间。此外,每一行都是一种独特的颜色。因此,如果在图像中找到的索引为 5,我们将查找此颜色图的第五行,即代表该像素的颜色。
因此,以您当前的方式调用 rgb2ind
不会 对应于您提供的自定义颜色图,除非您将此颜色图作为输入提供给 rgb2ind
。因此,如果您想使用您提供的自定义颜色图获得索引图像,请将此颜色图用作 rgb2ind
的输入,以便索引图像与此新颜色图相关。
在这种情况下,您只需要做:
[X, map] = rgb2ind(imrgb, colour_map);
我有一个名为imrgb的RGB图像,它的大小是320*512*3double.And我 还有 color_map = 64*3 double。我使用以下代码:
[X, map] = rgb2ind(imrgb, 256)
结果 X= 320*512 uint8,结果 map = 65*3 double。 结果 "map" 与给定的 "color_map" 完全不同。 如何解决这个问题?
"map" 的前几行如下所示:
0 0 0
0 0.125 1
0.56 1 0.439
1 0.125 0
0.188 1 0.812
1 0.749 0
0 0.7490 1
0.5019 0 0
0.7490 1 0.25098
给定 "color_map" 的前几行如下所示:
0 0 0.5625
0 0 0.6250
0 0 0.6875
0 0 0.7500
0 0 0.8125
0 0 0.8750
0 0 0.9375
0 0 1
0 0.0625 1
使用 rgb2ind
performs a colour quantization (the default is uniform quantization directly in RGB space and we also apply dithering 图像)将图像的特定数量的颜色(在您的情况下为 256),如果您未指定输入颜色图。 map
输出提供了一个颜色图,它使用图像的量化来最好地分割颜色 imrgb
。变量 X
为您提供 索引 ,其中每个像素映射到来自 map
变量的颜色图中。这实际上是颜色的查找 table。
这个 map
变量告诉我们应该将像素可视化为查找 table 中的哪种颜色。例如,post 中的上述调用将生成一个索引图像 X
,其索引从 1 到 256,而 map
将包含 256 行,其中每列都是红色的一部分(第一个列)、绿色(第二列)和蓝色(第三列)。比例在[0-1]
之间。此外,每一行都是一种独特的颜色。因此,如果在图像中找到的索引为 5,我们将查找此颜色图的第五行,即代表该像素的颜色。
因此,以您当前的方式调用 rgb2ind
不会 对应于您提供的自定义颜色图,除非您将此颜色图作为输入提供给 rgb2ind
。因此,如果您想使用您提供的自定义颜色图获得索引图像,请将此颜色图用作 rgb2ind
的输入,以便索引图像与此新颜色图相关。
在这种情况下,您只需要做:
[X, map] = rgb2ind(imrgb, colour_map);