对https://blog.csdn.net/huixingshao/article/details/42706699进行了小修改
灰度图像的伪彩色处理的原理如下:
根据色彩学方面的研究结果,将灰度图像对应到red , green , blue三个通道上,最后将三个通道的颜色值合成为需要显示的RGB颜色值即可。
灰度值与三个通道的映射关系如图3、图4、图5所示:
图1:灰度与红色通道映射关系
图2:灰度与绿色通道映射关系
- Vec3b GreyToColorMix(int val)
- {
- int r,g,b;
- //red
- if (val<128)
- {
- r = 0;
- }
- else if (val<192)
- {
- r = 255/64*(val-128);
- }
- else
- {
- r=255;
- }
- //green
- if (val<64)
- {
- g = 255/64*val;
- }
- else if (val<192)
- {
- g = 255;
- }
- else
- {
- g= -255/63*(val - 192)+255;
- }
- //blue
- if (val<64)
- {
- b = 255;
- }
- else if (val<128)
- {
- b = -255/63*(val - 192)+255;
- }
- else
- {
- b=0;
- }
- Vec3b rgb;
- rgb[0] = b;
- rgb[1] = g;
- rgb[2] = r;
- return rgb;
- }
Vec3b GreyToColorMix(int val)
{
int r,g,b;
//red
if (val<128)
{
r = 0;
}
else if (val<192)
{
r = 255/64*(val-128);
}
else
{
r=255;
}
//green
if (val<64)
{
g = 255/64*val;
}
else if (val<192)
{
g = 255;
}
else
{
g= -255/64*(val - 192)+255;
}
//blue
if (val<64)
{
b = 255;
}
else if (val<128)
{
b = -255/64*(val - 128);
}
else
{
b=0;
}
Vec3b rgb;
rgb[0] = b;
rgb[1] = g;
rgb[2] = r;
return rgb;
}
图3:灰度与蓝色通道映射关系
</div>
</div>