开篇废话

观察了一下冈萨雷斯的书,发现彩色图像处理仅仅用了一章进行介绍,原因分析了一下,后来发现,好像别的介绍的也不多,得出一个结论。冈萨雷斯这本书仅仅能作为一部纲领性的介绍。它基本涵盖了图像处理的基础知识。可是假设想使用某种方向作为工作的话。须要继续找很多其它专业的书和开源项目来学习。

还是像我之前抱怨的那样。每次看一本书之前都认为自己看完了会变得超级厉害,但每次看完一本书以后反而会认为自己像个傻瓜一样。须要很多其它的书来学习,如此循环,这一生都不会幸福了。盗图一张,与各位共勉

原理

说到伪彩色图像,与其相应的是真彩色,以下介绍下其差别和性质。
我们知道可以观察出颜色的光的波长范围是有限的,仅仅有那么一小段,换句话说也就是说有一大段光,仅仅有一小段有颜色。其它都是灰度的,但人类视觉有一个特点就是,仅仅能分辨出二十几种灰度,也就是说採集到的灰度图像分辨率超级高。有一千个灰度级,但非常遗憾。人们仅仅能看出二十几个,也就是说信息损失了五十倍,但人类视觉对彩色的分辨能力相当强,可以分辨出几千种色度。
在从採集的角度说下伪彩和真彩色,伪彩色原始图像是灰度图像
灰度图像的来源:

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

    图中红色框内为不可见光,没有颜色。所以他们一定是灰度图,须要时要进行伪彩色处理。
  2. 使用多通道採集设备採集的不可见光,这种图像有时候是单通道的。就是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<width*height;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光扫描图 :

卫星地形图:

星云:

总结

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

转载自http://blog.csdn.net/tonyshengtan

作者代码己分享至github:https://github.com/Tony-Tan/DIPpro

数字图像处理--灰度图转伪彩色图相关推荐

  1. opencv遍历实现灰度图转伪彩色图[C/C++][附applyColorMap方法]

    灰度图转伪彩色图 数字图像处理的作业,利用opencv实现通过灰度隐射将灰度图转化为伪彩色图. 效果大概如下,在最后附带opencv自带函数处理的方法 原图 遍历图 opencv的 applyColo ...

  2. 图像处理之灰度图转伪彩色图原理与代码分析

    首先强调:在matlab中用[row,col]=size(x)获取的行和列是与图片编辑器显示的行列相反. 首先RGB图转为灰度图,通过rgb2gray()函数:灰度图中每个像素点的灰度值根据三个分段线 ...

  3. python彩虹图_灰度图转伪彩色图和彩虹图,基于OpenCV 2.4.3

    做东西需要用到灰度转伪彩显示,毕竟嘛,人眼对彩色的分辨远远高于对灰度的分辨. 本来想这么成熟的东西网上肯定有代码,我勒个擦,找了一圈都是不知所云的东西,还是自己写一个吧!!!! 废话不说了,代码是码农 ...

  4. matlab灰度图转伪彩色,[转载]灰度图转伪彩色图和彩虹图,基于OpenCV 2.4.3

    做东西需要用到灰度转伪彩显示,毕竟嘛,人眼对彩色的分辨远远高于对灰度的分辨. 本来想这么成熟的东西网上肯定有代码,我勒个擦,找了一圈都是不知所云的东西,还是自己写一个吧!!!! 废话不说了,代码是码农 ...

  5. C#灰度图转伪彩色图

    /// <summary>/// 伪彩色图像构造器/// </summary>public class PseudoColorImageBuilder{/// <summ ...

  6. Labview实现图片24bit转变为8bit及灰度图的伪彩显示

    原图: 伪彩显示效果: 24bit转换为8bit程序框图: 伪彩显示程序框图: VI链接:Labview实现图片24bit转变为8bit及伪彩显示的源码-C文档类资源-CSDN下载 参考了这两位博主的 ...

  7. opencv将灰度图转为彩色图

    使用opencv将一幅灰度图转为彩色图. 使用函数:cvtColor(); Mat imgGray= imread("gray.jpg",0);     Mat imgRGB;   ...

  8. c++ opencv 灰度图转彩色图

    灰度图转彩色图______主要作用:在图上画彩色线条等等 //灰度图转彩色图 cv::Mat grayToRGB(const cv::Mat input_img) {//创建一个和灰度图一样大小的0值 ...

  9. opencv灰度图转伪彩图或彩色图

    一.背景 一般例如红外图像,呈现出来的是灰度图效果,此时每个像素有一个,在0-255内,如果想要观看伪彩图,也就是人工设置的彩色,需要在灰度图的基础上,给它增加RGB三个通道的值,让它变为看起来有红绿 ...

最新文章

  1. centos 安装mysql5.6.20_CentOS 7 安装MySQL 5.6遇到的疑难杂症小结
  2. python3 模板库 好用_良心整理15个超级Python库,不要错过
  3. ant 使用常见问题
  4. 扩展欧几里得求解ax+by=c的特殊解(模板)
  5. [剑指offer]面试题第[60]题[JAVA][n个骰子的点数][动态规划][空间优化]
  6. Go 标准库: log
  7. Android实现自定义曲线截屏,Android实现价格走势自定义曲线图
  8. go url 参数编码和解码
  9. screenfull.js跨浏览器使用JavaScript Fullscreen API
  10. TinyPNG 智能PNG和JPEG图片压缩
  11. 基于Java毕业设计幼儿园教育管理信息系统演示2021源码+系统+mysql+lw文档+部署软件
  12. python语料库_Python-使用NLTK创建新的语料库
  13. 2021年2月程序员工资统计,平均15144元
  14. 量化基金投资之Alpha策略简介
  15. 【转】为什么360这种软件存活至今?程序员:打不死的小强,春风吹又生
  16. Word-VBA:删除选择区域的项目符号
  17. QQ客户端管理聊天记录漫游功能 | 解决经常弹窗消息漫游安全验证,QQ服务独立密码的问题
  18. Elasticsearch 为什么会产生文档版本冲突?如何避免?
  19. entity、bo、vo、po、dto、pojo如何理解和区分?
  20. Omnigraffle 许可证

热门文章

  1. TypeScript 安装与使用
  2. 面试精讲之面试考点及大厂真题 - 分布式专栏 08 Redis中有哪些数据结构及底层实现原理
  3. 这部日本「神作」彻底拉低了我入门AI的门槛
  4. Elasticsearch--分布式RESTful搜索引擎
  5. linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用
  6. .net解决Xss攻击
  7. 【VSCode - Vetur 插件报错】Cannot find module ‘XXX‘ or its corresponding type declarations.Vetur(2307)
  8. JavaScript性能优化【中】-- Performance 工具
  9. let 作用域问题, 全局变量不能this引用
  10. C#LeetCode刷题之#874-模拟行走机器人​​​​​​​(Walking Robot Simulation)