c语言灰度图像转伪彩色图像,彩色图像--伪彩处理 灰度图转伪彩色图像
开篇废话
观察了一下冈萨雷斯的书,发现彩色图像处理只用了一章进行介绍,原因分析了一下,后来发现,好像别的介绍的也不多,得出一个结论,冈萨雷斯这本书只能作为一部纲领性的介绍,它基本涵盖了图像处理的基础知识,但是如果想使用某种方向作为工作的话,需要继续找更多专业的书和开源项目来学习。还是像我之前抱怨的那样,每次看一本书之前都觉得自己看完了会变得超级厉害,但每次看完一本书以后反而会觉得自己像个傻瓜一样,需要更多的书来学习,如此循环,这一生都不会幸福了。盗图一张,与各位共勉
原理
说到伪彩色图像,与其对应的是真彩色,下面介绍下其区别和性质。
我们知道能够观察出颜色的光的波长范围是有限的,只有那么一小段,换句话说也就是说有一大段光,只有一小段有颜色,其他都是灰度的,但人类视觉有一个特点就是,只能分辨出二十几种灰度,也就是说采集到的灰度图像分辨率超级高,有一千个灰度级,但很遗憾,人们只能看出二十几个,也就是说信息损失了五十倍,但人类视觉对彩色的分辨能力相当强,能够分辨出几千种色度。
在从采集的角度说下伪彩和真彩色,伪彩色原始图像是灰度图像
灰度图像的来源:
单通道相机或其他传感器(比如CT用的平板)采集到的都是灰度图,这里包括使用单通道采集的频率高于可见光的频率的电磁波,可见光,低于可见光频率的电磁波。
图中红色框内为不可见光,没有颜色,所以他们一定是灰度图,需要时要进行伪彩色处理。
使用多通道采集设备采集的不可见光,这种图像有时候是单通道的,就是1中所说的,也有可能是多通道,不如卫星就有可能,红外,可见光,还有其他不可见光采集设备,这样的多通道灰度图有时候需要进行伪彩处理。
真彩色图的来源:
用多通道采集设备,多为相机来采集可见光,这样得到的是多通道真彩色图像。
算法分析
对于单通道灰度图转换成伪彩图像的方法是将一种灰度映射为一种颜色,而映射方式不唯一,可以根据需要自行设定,下面的代码使用的算法是我自己想出来的,使用到了HSV色彩空间,并将其中的饱和度和亮度设为1.0,色相使用灰度0到255映射到0°到270°:
代码
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);
}
效果分析
灰度渐进图:
MacBook Pro x光扫描图
卫星地形图:
星云:
总结
伪彩色图乡相对灰度图像能够识别更多的细节,可分辨性较强。而且转换方式灵活,可以根据需要自行设计转换函数,或者自制映射表。 待续。。。
c语言灰度图像转伪彩色图像,彩色图像--伪彩处理 灰度图转伪彩色图像相关推荐
- 彩色图像--伪彩处理 灰度图转伪彩色图像
学习DIP第68天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://gi ...
- python使用openCV把原始彩色图像转化为灰度图、使用矩阵索引的方式对数据数据进行剪裁(image cropping)
python使用openCV把原始彩色图像转化为灰度图.使用矩阵索引的方式对数据数据进行剪裁(image cropping) 目录
- Python使用openCV把原始彩色图像转化为灰度图、使用OpenCV把图像二值化(仅仅包含黑色和白色的简化版本)、基于自适应阈值预处理(adaptive thresholding)方法
Python使用openCV把原始彩色图像转化为灰度图.使用OpenCV把图像二值化(仅仅包含黑色和白色的简化版本).基于自适应阈值预处理(adaptive thresholding)方法 目录
- 利用OpenCV把一幅彩色图像转换成灰度图
图像灰度化的目的是为了简化矩阵,提高运算速度. 彩色图像中的每个像素颜色由R.G.B三个分量来决定,而每个分量的取值范围都在0-255之间,这样对计算机来说,彩色图像的一个像素点就会有256*256* ...
- OpenCV3学习(2.4)——彩色图像读取、灰度图转化、RGB通道分割与合并
下列代码涉及到: 1.彩色图像的读取,图像翻转,转换为灰度图: 2.对彩色图像的RGB三通道进行切分与合并: 涉及到的函数如下: 1.图像的反转采用flip函数实现,该函数能够实现图像在水平方向,垂直 ...
- 将灰度图像转换成彩色图像
伪彩色处理,将灰度图像转换成彩色图像. clc;clear zd=imread('1.jpg'); zd=double(rgb2gray(zd)); figure; subplot(1,2,1) im ...
- 灰度图转热力图_二值图像、灰度图像、彩色图像
二值图像 二值图像(Binary Image),按名字来理解只有两个值,0和1,0代表黑,1代表白,或者说0表示背景,而1表示前景.其保存也相对简单,每个像素只需要1Bit就可以完整存储信息.如果把每 ...
- 数字图像处理--灰度图转伪彩色图
开篇废话 观察了一下冈萨雷斯的书,发现彩色图像处理仅仅用了一章进行介绍,原因分析了一下,后来发现,好像别的介绍的也不多,得出一个结论.冈萨雷斯这本书仅仅能作为一部纲领性的介绍.它基本涵盖了图像处理的基 ...
- 灰度图转RGB(伪彩色图)
灰度图转RGB(伪彩色图) 前言 代码 参考 前言 灰度图可以转化成伪彩色图以显示出更多的细节,简单整理了三种转化的方法,结合openCV通过C++进行了实现. 代码 该函数将二维数组转化为伪彩色图并 ...
- opencv遍历实现灰度图转伪彩色图[C/C++][附applyColorMap方法]
灰度图转伪彩色图 数字图像处理的作业,利用opencv实现通过灰度隐射将灰度图转化为伪彩色图. 效果大概如下,在最后附带opencv自带函数处理的方法 原图 遍历图 opencv的 applyColo ...
最新文章
- python【蓝桥杯vip练习题库】ADV-236林丹大战李宗伟
- [Oracle] UNIX与Windows 2000上Oracle的差异(II)
- 【独家】衣服上的铁锈去除简易方法
- 猿课python 第三天
- 邮件定时发送微博热搜
- AlphaGo浅析——浅析卷积神经网络
- ImageJ的单细胞荧光强度分析
- 3D博物馆虚拟纪念馆数字博览厅的“另类”展现方式
- 怎么关闭计算机139端口,win10系统关闭139端口的处理教程
- ADB自动化线刷升级安卓车机版本
- CF1520E Arranging The Sheep
- 明星代言的商品一般都不便宜,为何还那么受青睐?
- 孩子像谁软件在线测试,测试你最像哪个动漫人物官方版
- 无意中发现软件下载网站 softonic
- java排序接口ComparableT 的实现与使用
- log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件
- 使用nose进行python自动化测试
- 人员定位及轨迹管理方案
- 红外对管应该如何选择比较好
- 利用FFmpeg玩转Android视频录制与压缩(三)