LearningENVI&IDL 分享 http://blog.sciencenet.cn/u/dongyanqing Learning ENVI&IDL

博文

图像真彩色、假彩色和伪彩色显示

已有 14116 次阅读 2011-8-6 00:31 |个人分类: IDL技术|系统分类: 科研笔记| IDL, 图像显示, 真彩色, 伪彩色

        一、背景知识

计算机表示颜色也是用二进制。16位色的发色总数是6553真彩色,也就是216次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是1677万多色,也就是224次方。

图像显示的时候可能涉及到真彩色显示、伪彩色显示和假彩色显示等方式。

IDL下显示图像又有直接图形法、对象图形法、智能化工具可视化和快速可视化四种,后面分别以代码的形式给出各种模式下的图像显示例程,仔细看注释。

二、 基本概念

真彩色(True Color):真彩色是指在组成一幅彩色图像的每个像素值中,有RGB三个基色分量,每个基色分量直接决定显示设备的基色强度产生彩色。

伪彩色(Pseudo Color):每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作颜色查找表(color look-up tableCLUT)的表项入口地址,去查找一个显示图像时使用的RGB强度值,用查找出的RGB强度值合成产生彩色。


假彩色(False Color):将多波段单色影像合成为假彩色影像,如landsat 7/ETM+有八个波段,用其中三个合成就是假彩色

从实现技术上讲,假彩色与真彩色是一致的,都是RGB分量组合显示;伪彩色显示调用的是颜色表。

三、代码实现

1.       直接图形法

;直接图形法--

PRO SHOWIMAGEDIRECTGRAPHICS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;真彩色

  ;显示窗口

  WINDOW,0,xsize= imgDims[0],ysize = imgDims[1],$

    title = '真彩色'

  DEVICE,decomposed = 1

  ;/true相当于true=1,即对应图像数组为(3, w, h)

  TV,rgbImage,/true

  ;直接图形法--伪彩色

  WINDOW,1,xsize= imgDims[0],ysize = imgDims[1],$

    title = '灰度显示'

  ;原灰度显示

  TV, redChannel

  ;加载已有颜色表(IDL提供了近40个现成的颜色表,可通过xloadct查看)

  DEVICE,decomposed = 0

  LOADCT,13

  WINDOW,2,xsize= imgDims[0],ysize = imgDims[1],$

    title = '伪彩色(颜色表13'

  TV,redChannel

  ;自定义颜色表

  myR = BINDGEN(256)

  myG = myR[REVERSE(myR)]

  myB = myR

  ;增加编辑颜色表

  MODIFYCT,41,'colorTable',myR,myG,myB

  LOADCT,41

  WINDOW,3,xsize= imgDims[0],ysize = imgDims[1],$

    title = '伪彩色(自定义颜色表)'

  TV,redChannel

  ;假彩色

  DEVICE,decomposed = 1

  WINDOW,4,xsize= imgDims[0],ysize = imgDims[1],$

    title = '假彩色'

  TV,rgbImage[[2,1,0],*,*],/true

END

 

 

2.       对象图形法

 

;对象图形法显示图像

PRO SHOWIMAGEOBJECTGRAPHICS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;对象图形法-真彩色显示

  oImage= OBJ_NEW('IDLgrImage',rgbImage)

  XOBJVIEW,oImage,title= '真彩色显示'

  ;对象图形法-伪彩色显示

  oPalette = OBJ_NEW('IDLgrPalette')

  oPalette.LOADCT,13

  oImage = OBJ_NEW('IDLgrImage',redChannel,$

    palette = oPalette)

  XOBJVIEW,oImage,title = '伪彩色显示(颜色表13'

  ;假彩色显示

  oImage = OBJ_NEW('IDLgrImage',rgbImage[[2,1,0],*,*])

  XOBJVIEW,oImage,title = '假彩色显示'

END

3.       智能化编程工具可视化

 

;智能化编程工具

PRO SHOWIMAGEITOOLS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;真彩色显示

  IIMAGE,rgbImage,title = 'True Color'

  ;灰度显示

  IIMAGE,redChannel,title = 'Gray'

  ;伪彩色显示-获取颜色表

  LOADCT,13

  TVLCT,r,g,b,/get

  rgbTable = BYTARR(3,256)

  rgbTable[0,*,*] = r

  rgbTable[1,*,*] = g

  rgbTable[2,*,*] = b

  ;伪彩色显示

  IIMAGE,redChannel,title = 'Pseudo Color',$

    RGB_TABLE = rgbTable

 

4.       快速可视化

 

;快速可视化方式

PRO SHOWIMAGEQUICKVIS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;真彩色显示

  img1 = IMAGE(rgbImage)

  ;原始灰度显示

  img1 = IMAGE(redChannel)

  ;伪彩色显示

  img1 = IMAGE(redChannel,rgb_table= 13)

END

 

5.       主函数

PRO TEST_DISPLAYIMAGE

  ;获取IDL自带的Examples目录下的jpeg文件

  file = FILEPATH('rose.jpg', $

    SUBDIRECTORY = ['examples', 'data'])

  ;获取文件信息

  queryStatus = QUERY_IMAGE(file, imageInfo)

  imgDims = imageInfo.DIMENSIONS

  ;读取文件

  rgbImage = READ_IMAGE(file)

  redChannel = REFORM(rgbImage[0,*,*])

  greenChannel = REFORM(rgbImage[1,*,*])

  blueChannel = REFORM(rgbImage[2,*,*])

  ;直接图形法下的各种显示

  SHOWIMAGEDIRECTGRAPHICS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;对象图形法下的各种显示

  SHOWIMAGEOBJECTGRAPHICS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;智能化编程工具

  SHOWIMAGEITOOLS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

  ;快速可视化显示

  SHOWIMAGEQUICKVIS,imgDims,$

    rgbImage,$

    redChannel,$

    greenChannel,$

    blueChannel

END

 

四、最终效果图




https://blog.sciencenet.cn/blog-344887-472319.html

上一篇: 理查德·克莱德曼钢琴曲全集下载与IDL重命名程序
下一篇: IDL下视图关联显示
收藏 IP: 115.171.212.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
返回顶部

董彦卿

  • 加为好友
  • 给我留言
  • 打个招呼
  • 发送消息
扫一扫,分享此博文

全部作者的其他最新博文

  • • IDL技术博客里面源代码的说明
  • • C#与IDL混编时数组传递问题分析
  • • IDL获取电脑当前IP的方法
  • • Learning ENVI&IDL博客内容简介
  • • 感谢大家关注我的blog

全部精选博文导读

  • • 即时开通权限!科学网APP推出论文&基金全新活动
  • • 科学网编辑部:我们悄悄准备了一份惊喜……
  • • 对话Energies期刊编委——中国科学院武汉岩土力学研究所刘建军研究员
  • • 北理工陈人杰等:构筑亲核-疏水保护界面用于高可逆锌负极
  • • 2024年夏季青藏高原考察:吉隆沟昆虫多样性监测-0523
  • • 科研创新与人生逆袭

相关博文

  • • MDPI 学者沙龙系列——深圳专场成功举办 | MDPI News
  • • Authorea 预印发表南昌大学学者 PERSPECTIVE 论文
  • • [转载]水力学者郭俊克经验谈——我是如何学数学的(3)
  • • [转载]水力学者郭俊克经验谈——我是如何学数学的(2)
  • • 《科学计量学导论》学者推荐语(更新中)
  • • [转载]水力学者郭俊克经验谈——我是如何学数学的(1)

Archiver| 手机版| 科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-1 15:41

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部

聚圣源中望软件我的老婆是狐狸精人工智能起名网球宝贝黑社会女老大排行榜姚起名男婴儿取名钢材店起名大全一百分免费取名起名大全10月27日女孩起名测试测试打分结果新生儿起名得分字锦起名大全cctv5直播云南卫视中国市长服装起商标名字免费起名字2021免费八字起名英语论文题目江山如此多娇演员表冒险岛战士技能加点张姓男宝起名字第99只萤火虫起名字大全男孩姓韩孙家起名女孩词牌名有哪些根据父母的起名忍者之刃中文版傅 起名字好八月初五渡江战役电影淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化