c语言灰度图像转伪彩色图像,彩色图像--伪彩处理 灰度图转伪彩色图像

开篇废话

观察了一下冈萨雷斯的书,发现彩色图像处理只用了一章进行介绍,原因分析了一下,后来发现,好像别的介绍的也不多,得出一个结论,冈萨雷斯这本书只能作为一部纲领性的介绍,它基本涵盖了图像处理的基础知识,但是如果想使用某种方向作为工作的话,需要继续找更多专业的书和开源项目来学习。还是像我之前抱怨的那样,每次看一本书之前都觉得自己看完了会变得超级厉害,但每次看完一本书以后反而会觉得自己像个傻瓜一样,需要更多的书来学习,如此循环,这一生都不会幸福了。盗图一张,与各位共勉

0818b9ca8b590ca3270a3433284dd417.png

原理

说到伪彩色图像,与其对应的是真彩色,下面介绍下其区别和性质。

我们知道能够观察出颜色的光的波长范围是有限的,只有那么一小段,换句话说也就是说有一大段光,只有一小段有颜色,其他都是灰度的,但人类视觉有一个特点就是,只能分辨出二十几种灰度,也就是说采集到的灰度图像分辨率超级高,有一千个灰度级,但很遗憾,人们只能看出二十几个,也就是说信息损失了五十倍,但人类视觉对彩色的分辨能力相当强,能够分辨出几千种色度。

在从采集的角度说下伪彩和真彩色,伪彩色原始图像是灰度图像

灰度图像的来源:

单通道相机或其他传感器(比如CT用的平板)采集到的都是灰度图,这里包括使用单通道采集的频率高于可见光的频率的电磁波,可见光,低于可见光频率的电磁波。

0818b9ca8b590ca3270a3433284dd417.png

图中红色框内为不可见光,没有颜色,所以他们一定是灰度图,需要时要进行伪彩色处理。

使用多通道采集设备采集的不可见光,这种图像有时候是单通道的,就是1中所说的,也有可能是多通道,不如卫星就有可能,红外,可见光,还有其他不可见光采集设备,这样的多通道灰度图有时候需要进行伪彩处理。

真彩色图的来源:

用多通道采集设备,多为相机来采集可见光,这样得到的是多通道真彩色图像。

算法分析

对于单通道灰度图转换成伪彩图像的方法是将一种灰度映射为一种颜色,而映射方式不唯一,可以根据需要自行设定,下面的代码使用的算法是我自己想出来的,使用到了HSV色彩空间,并将其中的饱和度和亮度设为1.0,色相使用灰度0到255映射到0°到270°:

0818b9ca8b590ca3270a3433284dd417.png

代码

void Gray2Color(double *src,RGB* dst,int width,int height,int type){

HSV* temp=(HSV*)malloc(sizeof(HSV)*width*height);

for(int i=0;i

double gray_value=src[i];

if(type==HIGHVALUE_EQU_RED)

temp[i].c1=HSVMAX-GRAY2HSV*gray_value;

else if(type==LOWVALUE_EQU_RED)

temp[i].c1=GRAY2HSV*gray_value;

temp[i].c2=1.0;

temp[i].c3=1.0;

}

HSV2RGB(temp, dst, width, height);

free(temp);

}

效果分析

灰度渐进图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

MacBook Pro x光扫描图

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

卫星地形图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

星云:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

总结

伪彩色图乡相对灰度图像能够识别更多的细节,可分辨性较强。而且转换方式灵活,可以根据需要自行设计转换函数,或者自制映射表。 待续。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值