IDL入门教程03a(图像数据处理)(上).doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IDL入门教程03a(图像数据处理)(上)

第三章 图像数据处理 本章概要 IDL最开始是一种处理图像的语言。正因为此,世界各地的许多科学家和工程师仍在用IDL语言。这章阐述了图像处理的基本工作。将从中学到以下几点 怎样读取和显示图像数据 怎样缩放图像数据 怎样在显示窗口中定位图像 怎样改变图像的大小 怎样从显示设备中读取图像 怎样完成基本的图像处理任务 怎样建立简单的图像滤波器 图像处理 事实上,任何类型的二维数据集都可认为是一幅图像。但是要在一个8位的显示设备上显示图像数据,就必须将图像数据调整为 0~255之间的字节型数值。(在一个24-bit的显示设备上,24位图像的RGB值必须调整成字节型数值。)因为图像总是以字节型数值显示,所以图像总是以字节型数组来存储。但是无论图像是怎样存储的,图像总是由两个显示图像的IDL命令:TV和TVScl以字节型数值来显示。 要了解是怎样工作的,需要有一些图像数据用于处理。用命令LoadData来打开图像数据集Ali and Dave。将要处理这两幅图像数据中的第二幅图像。键入 IDLimage=LoadData(10) IDLimage=image[*,*,1] 显示图像 可用TV和TVScl两个IDL命令中的任一个来显示图像。这两个命令几乎在各个方面都是一样的,包括能与之一起使用的关键字。仅仅在一个方面不同:TVScl将图像数据调整为与IDL运行时所用颜色数目相适应的字节型数值。例如:如果在使用IDL时用220种颜色,则在图像显示之前TVScl将图像数据调整为0~219之间的字节型数值。 另一方面,TV命令取图像数据本身的值,仅仅将其作为字节型数值传送到显示设备上。如果有必要,图像数据将被截断以符合字节型数值。如果图像数据不被调整到0~255之间,图像将很可能显示不正确。 注意,与Plot,Surface和Contour命令不同,TV和TVScl命令在显示图像之前不删除已显示的内容。一般情况下这个问题不大,但有时候也会产生一些麻烦。如果想要一个干净的显示窗口来显示图像数据,无论当前窗口上的显示内容是什么,都可用一个简单的命令Erase来删除。 IDLErase 这里有一个实例。刚才读取的IDL的图像数据集已经调整在0~255之间。 可以键入如下内容来查看: IDLPrint,Max(image),Min(image) 但是,如果在一个8位显示设备上工作,可能没有全部使用在显示器上可用的256种颜色。如果需要了解正在使用多少种颜色,可键入: IDLPrint,!D.Table_Size 在一个8位显示器(这里指颜色表的大小)上,运行IDL时所用颜色的数目通常是在210~240之间,显然可用的颜色太少了。在一个24位的显示器上,可以获得1670000种颜色,但颜色表大小仍然是256。以后将会学到IDL是怎样选择它所用的颜色数目。 打开一个显示窗口,装上灰度颜色表, 用TV命令显示图像: IDLWindow,0,XSize=192,YSize=192 IDLLoadCT,0 IDLTV,image 所得图像应如图30所示。 图30:IDL和Research Systems公司的创始人--David Stern的图像。People.dat数据集中的另外一幅图像是Ali Bahrami,Research Systems公司的第一为员工。他们两个依然致力于IDL的开发。 因为是用TV命令,所以数据没有经过调整就被传送到显示器中。尽管看不出来,但图像上所有大于IDL运行时的颜色数目的像素值都被设为同样的值。也就是说,比!D.Table_Size-1值大的像素被以相同的颜色显示。(在这种情况下,看到的颜色是灰色明暗图。) 如果用TVScl命令显示图像,也许能看出差别。打开另一个窗口并将其移到第一个窗口的旁边。用TVScl命令显示图像: IDLwindow,1,XSize=192,YSize=192 IDLTVScl,image 可看到两个图像的明暗程度不同。因为这幅图像数据最大值为238,所以差别是很微弱的。如果看不出差别,可先在0~255之间对数据进行调整: IDLwest,0 IDLimage=Bytscl(image) IDLtv,image IDLwest,1 IDLtvscl,image 如果仍不能看到差别,可装入颜色表。Red Temperature颜色表可能起作用。键入: IDLLoadCT,3 如果要了解TVScl作了些什么,可调整数据并用TV命令显示: IDLWindow,

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档