COLORMAP_JET的颜色规律

关于applyColorMap函数的使用参考:

伪彩色:LUT作用与用法

1. COLORMAP_JET简介

计算机视觉中最常用的颜色映射算法是Jet,它具有高的对比度可以有效突出图像中的细节。但如果仔细观察图像的梯度图会发现一系列的颜色带,在青色和黄色区域最为明显。
在这里插入图片描述

缺点:这对于伪彩图最大的影响在于颜色变化过于剧烈,将导致人眼对于实际数据的误解。很多平滑过渡的区域会被误解为有较大的梯度。由于Jet映射对于人眼感知来说变化不是常量,所以它不具有感知均匀性。这种影响对于色盲人士来说更为明显,将造成伪彩图映射出的信息变得模糊。

2. 灰度到JET的映射

2.1 灰度值映射成JET

对于0~255范围的灰度值映射成JET模式的伪彩,对照情况如下:

将其对应的值打印出来:

    Mat img = Mat(20, 256, CV_8UC1);
	for (size_t i = 0; i < 20; i++)
	{
		uchar* p = img.ptr<uchar>(i);
		for (int j = 0; j < 256; j++) {
			p[j] = j;
		}
	}
	imshow("color", img);
	Mat jet;
	applyColorMap(img, jet, COLORMAP_JET);
	imshow("jet", jet);
    for (size_t i = 0; i < 1; i++)
	{
		uchar* p0 = img.ptr<uchar>(i);
		/*uchar* p1 = imgRGB[0].ptr<uchar>(i);
		uchar* p2= imgRGB[1].ptr<uchar>(i);
		uchar* p3 = imgRGB[2].ptr<uchar>(i);*/
		Vec3b* p = jet.ptr<Vec3b>(i);
		for (size_t j = 0; j < 256; j++)
		{
			cout << (int)p0[j]<<" —— "<< "BGR(" << int(p[j][0]) << "," << int(p[j][1]) << "," << int(p[j][2]) << ")" << endl;
		}
	}
	waitKey();

输出的对照值:

0 —— BGR(128,0,0)
1 —— BGR(132,0,0)
2 —— BGR(136,0,0)
3 —— BGR(140,0,0)
4 —— BGR(144,0,0)
5 —— BGR(148,0,0)
6 —— BGR(152,0,0)
7 —— BGR(156,0,0)
8 —— BGR(160,0,0)
9 —— BGR(164,0,0)
10 —— BGR(168,0,0)
11 —— BGR(172,0,0)
12 —— BGR(176,0,0)
13 —— BGR(180,0,0)
14 —— BGR(184,0,0)
15 —— BGR(188,0,0)
16 —— BGR(192,0,0)
17 —— BGR(196,0,0)
18 —— BGR(200,0,0)
19 —— BGR(204,0,0)
20 —— BGR(208,0,0)
21 —— BGR(212,0,0)
22 —— BGR(216,0,0)
23 —— BGR(220,0,0)
24 —— BGR(224,0,0)
25 —— BGR(228,0,0)
26 —— BGR(232,0,0)
27 —— BGR(236,0,0)
28 —— BGR(240,0,0)
29 —— BGR(244,0,0)
30 —— BGR(248,0,0)
31 —— BGR(252,0,0)
32 —— BGR(255,0,0)
33 —— BGR(255,4,0)
34 —— BGR(255,8,0)
35 —— BGR(255,12,0)
36 —— BGR(255,16,0)
37 —— BGR(255,20,0)
38 —— BGR(255,24,0)
39 —— BGR(255,28,0)
40 —— BGR(255,32,0)
41 —— BGR(255,36,0)
42 —— BGR(255,40,0)
43 —— BGR(255,44,0)
44 —— BGR(255,48,0)
45 —— BGR(255,52,0)
46 —— BGR(255,56,0)
47 —— BGR(255,60,0)
48 —— BGR(255,64,0)
49 —— BGR(255,68,0)
50 —— BGR(255,72,0)
51 —— BGR(255,76,0)
52 —— BGR(255,80,0)
53 —— BGR(255,84,0)
54 —— BGR(255,88,0)
55 —— BGR(255,92,0)
56 —— BGR(255,96,0)
57 —— BGR(255,100,0)
58 —— BGR(255,104,0)
59 —— BGR(255,108,0)
60 —— BGR(255,112,0)
61 —— BGR(255,116,0)
62 —— BGR(255,120,0)
63 —— BGR(255,124,0)
64 —— BGR(255,128,0)
65 —— BGR(255,132,0)
66 —— BGR(255,136,0)
67 —— BGR(255,140,0)
68 —— BGR(255,144,0)
69 —— BGR(255,148,0)
70 —— BGR(255,152,0)
71 —— BGR(255,156,0)
72 —— BGR(255,160,0)
73 —— BGR(255,164,0)
74 —— BGR(255,168,0)
75 —— BGR(255,172,0)
76 —— BGR(255,176,0)
77 —— BGR(255,180,0)
78 —— BGR(255,184,0)
79 —— BGR(255,188,0)
80 —— BGR(255,192,0)
81 —— BGR(255,196,0)
82 —— BGR(255,200,0)
83 —— BGR(255,204,0)
84 —— BGR(255,208,0)
85 —— BGR(255,212,0)
86 —— BGR(255,216,0)
87 —— BGR(255,220,0)
88 —— BGR(255,224,0)
89 —— BGR(255,228,0)
90 —— BGR(255,232,0)
91 —— BGR(255,236,0)
92 —— BGR(255,240,0)
93 —— BGR(255,244,0)
94 —— BGR(255,248,0)
95 —— BGR(255,252,0)
96 —— BGR(254,255,2)
97 —— BGR(250,255,6)
98 —— BGR(246,255,10)
99 —— BGR(242,255,14)
100 —— BGR(238,255,18)
101 —— BGR(234,255,22)
102 —— BGR(230,255,26)
103 —— BGR(226,255,30)
104 —— BGR(222,255,34)
105 —— BGR(218,255,38)
106 —— BGR(214,255,42)
107 —— BGR(210,255,46)
108 —— BGR(206,255,50)
109 —— BGR(202,255,54)
110 —— BGR(198,255,58)
111 —— BGR(194,255,62)
112 —— BGR(190,255,66)
113 —— BGR(186,255,70)
114 —— BGR(182,255,74)
115 —— BGR(178,255,78)
116 —— BGR(174,255,82)
117 —— BGR(170,255,86)
118 —— BGR(166,255,90)
119 —— BGR(162,255,94)
120 —— BGR(158,255,98)
121 —— BGR(154,255,102)
122 —— BGR(150,255,106)
123 —— BGR(146,255,110)
124 —— BGR(142,255,114)
125 —— BGR(138,255,118)
126 —— BGR(134,255,122)
127 —— BGR(130,255,126)
128 —— BGR(126,255,130)
129 —— BGR(122,255,134)
130 —— BGR(118,255,138)
131 —— BGR(114,255,142)
132 —— BGR(110,255,146)
133 —— BGR(106,255,150)
134 —— BGR(102,255,154)
135 —— BGR(98,255,158)
136 —— BGR(94,255,162)
137 —— BGR(90,255,166)
138 —— BGR(86,255,170)
139 —— BGR(82,255,174)
140 —— BGR(78,255,178)
141 —— BGR(74,255,182)
142 —— BGR(70,255,186)
143 —— BGR(66,255,190)
144 —— BGR(62,255,194)
145 —— BGR(58,255,198)
146 —— BGR(54,255,202)
147 —— BGR(50,255,206)
148 —— BGR(46,255,210)
149 —— BGR(42,255,214)
150 —— BGR(38,255,218)
151 —— BGR(34,255,222)
152 —— BGR(30,255,226)
153 —— BGR(26,255,230)
154 —— BGR(22,255,234)
155 —— BGR(18,255,238)
156 —— BGR(14,255,242)
157 —— BGR(10,255,246)
158 —— BGR(6,255,250)
159 —— BGR(1,255,254)
160 —— BGR(0,252,255)
161 —— BGR(0,248,255)
162 —— BGR(0,244,255)
163 —— BGR(0,240,255)
164 —— BGR(0,236,255)
165 —— BGR(0,232,255)
166 —— BGR(0,228,255)
167 —— BGR(0,224,255)
168 —— BGR(0,220,255)
169 —— BGR(0,216,255)
170 —— BGR(0,212,255)
171 —— BGR(0,208,255)
172 —— BGR(0,204,255)
173 —— BGR(0,200,255)
174 —— BGR(0,196,255)
175 —— BGR(0,192,255)
176 —— BGR(0,188,255)
177 —— BGR(0,184,255)
178 —— BGR(0,180,255)
179 —— BGR(0,176,255)
180 —— BGR(0,172,255)
181 —— BGR(0,168,255)
182 —— BGR(0,164,255)
183 —— BGR(0,160,255)
184 —— BGR(0,156,255)
185 —— BGR(0,152,255)
186 —— BGR(0,148,255)
187 —— BGR(0,144,255)
188 —— BGR(0,140,255)
189 —— BGR(0,136,255)
190 —— BGR(0,132,255)
191 —— BGR(0,128,255)
192 —— BGR(0,124,255)
193 —— BGR(0,120,255)
194 —— BGR(0,116,255)
195 —— BGR(0,112,255)
196 —— BGR(0,108,255)
197 —— BGR(0,104,255)
198 —— BGR(0,100,255)
199 —— BGR(0,96,255)
200 —— BGR(0,92,255)
201 —— BGR(0,88,255)
202 —— BGR(0,84,255)
203 —— BGR(0,80,255)
204 —— BGR(0,76,255)
205 —— BGR(0,72,255)
206 —— BGR(0,68,255)
207 —— BGR(0,64,255)
208 —— BGR(0,60,255)
209 —— BGR(0,56,255)
210 —— BGR(0,52,255)
211 —— BGR(0,48,255)
212 —— BGR(0,44,255)
213 —— BGR(0,40,255)
214 —— BGR(0,36,255)
215 —— BGR(0,32,255)
216 —— BGR(0,28,255)
217 —— BGR(0,24,255)
218 —— BGR(0,20,255)
219 —— BGR(0,16,255)
220 —— BGR(0,12,255)
221 —— BGR(0,8,255)
222 —— BGR(0,4,255)
223 —— BGR(0,0,255)
224 —— BGR(0,0,252)
225 —— BGR(0,0,248)
226 —— BGR(0,0,244)
227 —— BGR(0,0,240)
228 —— BGR(0,0,236)
229 —— BGR(0,0,232)
230 —— BGR(0,0,228)
231 —— BGR(0,0,224)
232 —— BGR(0,0,220)
233 —— BGR(0,0,216)
234 —— BGR(0,0,212)
235 —— BGR(0,0,208)
236 —— BGR(0,0,204)
237 —— BGR(0,0,200)
238 —— BGR(0,0,196)
239 —— BGR(0,0,192)
240 —— BGR(0,0,188)
241 —— BGR(0,0,184)
242 —— BGR(0,0,180)
243 —— BGR(0,0,176)
244 —— BGR(0,0,172)
245 —— BGR(0,0,168)
246 —— BGR(0,0,164)
247 —— BGR(0,0,160)
248 —— BGR(0,0,156)
249 —— BGR(0,0,152)
250 —— BGR(0,0,148)
251 —— BGR(0,0,144)
252 —— BGR(0,0,140)
253 —— BGR(0,0,136)
254 —— BGR(0,0,132)
255 —— BGR(0,0,128)

2.2 JET映射规律

i从0开始取值。

灰度值BGR
0~31128+4i00
3225500
33~952554+4i0
962542552
97~158250-4i2556+4i
1591255254
160~2230252-4i255
224~25500252-4i

2.3 c++实现Jet映射

Mat test=Mat(20,256,CV_8UC3);
	int s;
	for (int i = 0; i < 20; i++) {
		Vec3b* p = test.ptr<Vec3b>(i);
		for (s = 0; s < 32; s++) {
			p[s][0] = 128 + 4 * s;
			p[s][1] = 0;
			p[s][2] = 0;
		}
		p[32][0] = 255;
		p[32][1] = 0;
		p[32][2] = 0;
		for (s = 0; s < 63; s++) {
			p[33+s][0] = 255;
			p[33+s][1] = 4+4*s;
			p[33+s][2] = 0;
		}
		p[96][0] = 254;
		p[96][1] = 255;
		p[96][2] = 2;
		for (s = 0; s < 62; s++) {
			p[97 + s][0] = 250 - 4 * s;
			p[97 + s][1] = 255;
			p[97 + s][2] = 6+4*s;
		}
		p[159][0] = 1;
		p[159][1] = 255;
		p[159][2] = 254;
		for (s = 0; s < 64; s++) {
			p[160 + s][0] = 0;
			p[160 + s][1] = 252 - (s * 4);
			p[160 + s][2] = 255;
		}
		for (s = 0; s < 32; s++) {
			p[224 + s][0] = 0;
			p[224 + s][1] = 0;
			p[224 + s][2] = 252-4*s;
		}
	}
	imshow("me", test);
	waitKey();

### 回答1: 在Matlab中,colormap函数用于设置当前图形的颜色映射。颜色映射是指将数据值映射到不同颜色的过程,这通常用于可视化科学数据。 colormap函数可以接受一个输入参数,用于指定颜色映射的名称或自定义的颜色映射。常用的颜色映射包括jet、hsv、hot、cool、spring、summer、autumn和winter。用户也可以自定义颜色映射,方法是创建一个n×3的矩阵,其中每一行代表一种颜色,n为颜色数目。然后可以将这个矩阵作为输入参数传递给colormap函数。 使用colormap函数可以为图形添加配色方案,使得数据可视化更加生动、直观。例如,可以使用jet颜色映射将低值处的数据点映射到蓝色,高值处的数据点映射到红色,中间值映射到绿色,从而更好地表现数据的分布规律。同时,也可以通过自定义颜色映射,将数据映射到更符合实际场景的颜色,增强数据分析的可信度。 ### 回答2: 在Matlab中,colormap函数用于设置和获取作图时使用的颜色映射表。颜色映射表确定了如何将数据值映射到可视化效果上的颜色colormap函数通常与imshow、image、contourf等绘图函数一起使用。在使用时,可以通过colormap函数设置作图的颜色映射表。例如,将heatmap的颜色设置为热图,可以使用colormap(hot)。此外,Matlab还提供了许多预定义的颜色映射表,如gray、cool、jet等,用户可以根据需要选择。 除了设置颜色映射表,colormap函数还可以用于获取当前绘图的颜色映射表。通过调用colormap函数而不传入参数,可以获取当前使用的颜色映射表。返回的结果是一个矩阵,每一行代表一个颜色,其中的数值表示红、绿、蓝三个颜色通道的强度。用户可以根据需要,通过该矩阵对颜色映射表进行自定义。 此外,colormap函数还可以用于设置图形对象的Colormap属性。例如,可以通过set(gcf,'Colormap',hot)将当前图形窗口的颜色映射表设置为热图。 综上所述,colormap函数是Matlab中用于设置和获取作图颜色映射表的重要函数。通过该函数,用户可以根据需要选择预定义的颜色映射表,也可以自定义颜色映射表,实现更加个性化的可视化效果。 ### 回答3: 在Matlab中,colormap函数用于设置和获取当前图形窗口的颜色映射表。颜色映射表是将数据值映射到颜色的一种方法,它决定了图像中不同数值对应的颜色colormap函数可以使用预定义的颜色映射表,也可以使用自定义的颜色映射表。Matlab提供了一些预定义的颜色映射表,如'jet'、'hsv'、'gray'等。我们可以使用colormap('颜色映射表名称')来设置当前图形窗口使用某个预定义的颜色映射表。 此外,colormap函数还可以使用自定义的颜色映射表。我们可以使用一个包含RGB(红、绿、蓝)值的矩阵来定义自定义的颜色映射表。比如,我们可以创建一个n行3列的矩阵,每一行对应一个颜色,每一列对应RGB的值。然后使用colormap自定义的颜色映射表。例如,colormap(m),其中m是我们定义的颜色矩阵。 在使用colormap函数之后,我们可以通过colorbar函数将颜色映射表添加到当前图形窗口的一侧。colorbar函数可用于表示颜色映射中数值与颜色的对应关系。 colormap函数的另一个有用的功能是返回当前图形窗口的颜色映射表。通过使用cmap = colormap即可获得当前颜色映射表的RGB矩阵。 总之,colormap函数在Matlab中用于设置和获取当前图形窗口的颜色映射表。它可以使用预定义的颜色映射表,也可以使用自定义的颜色映射表。使用colormap函数可以将颜色映射表添加到图像中,并在需要时获取当前图形窗口的颜色映射表。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值