【发布时间】:2015-08-16 18:19:39
【问题描述】:
我有一个名为 imrgb 的 RGB 图像,其大小为 320*512*3 双倍。而我 也有 color_map = 64*3 双倍。我使用以下代码:
[X, map] = rgb2ind(imrgb, 256)
结果 X= 320*512 uint8,结果 map = 65*3 double。 生成的“地图”与给定的“颜色地图”完全不同。 如何解决这个问题?
“地图”的前几行如下所示:
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执行图像的颜色量化,并且map输出提供使用该量化分割颜色的颜色图。它不必与您提供的自定义颜色图相对应除非您将此颜色图作为输入提供给rgb2ind。你在这里做什么有点不清楚。您能否进一步了解匹配彩色地图的目的?您在这里的总体目标是什么? -
@rayryeng,我想让 X 做进一步的图像处理工作。给出了“color_map”和“imrgb”,我只想使用我现在拥有的东西来获得精确的二维 X 来表示我的图像。正如你所说,这是否意味着我应该将给定的“color_map”和给定的“imrgb”一起输入方程?
-
@rayryeng,我应该这样做:[X, color_map] = rgb2ind(imrgb, 256)?或者还有什么我不知道的。
-
试试
[X, map] = rgb2ind(imrgb, color_map);。 -
@rayryeng,我只想请你写一个答案,以便我投票!做吧,拜托!
标签: image matlab image-processing computer-vision vision