实验三 IDL图像处理
图像处理实验报告

图像处理实验报告图像处理实验报告一、引言图像处理是计算机科学与工程领域的一个重要研究方向,它涉及到对数字图像进行获取、处理、分析和显示等一系列操作。
本实验旨在通过使用图像处理技术,对一幅给定的数字图像进行处理和分析,以探索图像处理的原理和应用。
二、实验目的本实验有以下几个目的:1. 理解图像处理的基本概念和原理;2. 掌握图像处理的常用技术和方法;3. 熟悉图像处理软件的使用。
三、实验步骤1. 图像获取在本实验中,我们选择了一张风景图作为实验对象。
该图像是通过数码相机拍摄得到的,保存在计算机中的文件格式为JPEG。
我们使用图像处理软件将该图像导入到程序中,以便进行后续的处理和分析。
2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理。
预处理的目的是去除图像中的噪声、平滑图像的边缘等。
我们使用了均值滤波和中值滤波两种常用的图像平滑方法。
通过对比两种方法的效果,我们可以选择合适的方法来进行图像预处理。
3. 图像增强图像增强是指通过一系列的操作,使得图像在视觉上更加鲜明、清晰、易于观察。
在本实验中,我们使用了直方图均衡化和灰度拉伸两种图像增强方法。
直方图均衡化通过对图像的像素值进行变换,使得图像的直方图更加均匀,从而增强图像的对比度。
灰度拉伸则是通过对图像的像素值进行线性变换,将图像的灰度范围拉伸到更广的范围内,从而增强图像的细节。
4. 图像分割图像分割是将图像分成若干个互不重叠的区域,每个区域具有一定的意义和特征。
在本实验中,我们使用了阈值分割和边缘检测两种图像分割方法。
阈值分割是指通过设置一个合适的阈值,将图像中的像素分为两个类别。
边缘检测则是通过检测图像中的边缘信息,将图像分割为不同的区域。
5. 图像特征提取图像特征提取是指从图像中提取出具有一定意义和特征的信息。
在本实验中,我们选择了纹理特征和颜色特征两种常用的图像特征提取方法。
纹理特征提取通过对图像的纹理进行分析,提取出图像的纹理特征。
IDL 图像处理第2讲

DIP Lecture 2
1
Spatial Transformation
In a spatial transformation each point (x, y) of image A is mapped to a point (u, v) in a new coordinate system. u = f1(x, y) v = f2(x, y)
DIP Lecture 2 7
Transform Operations
The transformation matrices below can be used as building blocks. 1 0 x0 T = 0 1 y0 Translation by (x0, y0) 0 0 1 s1 0 0 Scale by s1 and s2 T = 0 s2 0 0 0 1 cos θ sin θ 0 T = sin θ cos θ 0 Rotate by θ 0 0 1 You will usually want to translate the center of the image to the origin of the coordinate system, do any rotations and scalings, and then translate it back.
DIP Lecture 2
6
Combinations of Transforms
Complex ane transforms can be constructed by a sequence of basic ane transforms. Transform combinations are most easily described in terms of matrix operations. To use matrix operations we introduce homogeneous coordinates. These enable all ane operations to be expressed as a matrix multiplication. Otherwise, translation is an exception. The ane equations are expressed as u a b c x v = d e f y 1 0 0 1 1 An equivalent expression using matrix notation is q = Tp where q, T and q are the dened above.
IDL在数字图像处理课程教学中的应用

[杨 4 平华. 的医学图 】 基于 像数据的可视化研究[, 科技大学,0. D华中 】 26 0
【韩培 友. 5 】 吼可视化分析与应用【] M_ : 西安 西北工业大学出 版社,05 20. [1 楚, 杨芳, 数字图像处理课 程实验教 学过 程设计【 . 6' 冯倩, 等. 1 7 J计算机教 育, 11 : — 7 】 2 18 7 7. 0( )4 [ 殿 武.L 7 悯 D 可视化工具. r-提 高[] , l- x , .b M. 北赢 机械工业出 版社,05 20.
间, 培养学 生创新 精神和 实践能力 。 怎 样让学生成为机房的主人 , 怎样把机房 系统 的使用空间还给学生 , 为学生提 供
参考文献 :
【 敏. 1 E 数字图像处理[】 M. 机械工业出版社, 0. 北京: 26 0 [章毓晋周像处理和分析[] 肃 清华大学出版社, 0 . 2 ] M北 24 0 【 彭晓日 基于M TA 的数字图像处理课 程的教学实验设计[高等教 育研氪 20, (: — 2 5 】 月. ALB J ] 09 61 0 6. 2 ) 6
更加开 放、 便捷 的学 习环 境 , 学 生的 让
使用环 境得以保 留? 这些完全可以借 助 软件 和网络技术 将传统 机房营 建成 开 放的数字化学习环境 , 并在此基 础上创 设新 型的教与学模 式, 达到利用信息技
术促 进学生主动学习、 主学 习的目 。 自 标
加硬盘保护卡环境下开展教学, 因为开
放学 生机的权 限容易导致机 器 出现各 种问题 , 既干扰教 学, 增加教师 额外 也 的工作 量, 所以机房采用了硬盘 保护还 原模 式 , 论学 生怎样修改 、 除或 即无 删
要 实现这 一目 标就 是卸掉 还原模式, 启 用域, 利用基 本域 控制器上活动 目 录来 管 理每 台计 算机 的软 硬件 和学 生用户 的方 法, 并设 置 相应的资源 , 在域 模 式
IDL第六章 图像处理

Array:原始数组 X, Y, Z :X,Y,Z三个维度更改后的大小 Result:重采样后结果数组 CUBIC=value{-1 to 0}] :重采样方法为三次立方
卷积,值为参数 /INTERP:重采样方法为双线性内插法
6.3 图像重采样- expend
EXPAND, A, Nx, Ny, Result
Angle:旋转角度 [Mag, X0, Y0] :放大缩小比例,旋转中心
[, /INTERP]:双线性插值 [, MISSING=value]:背景色设置
6.5 图像旋转与翻转-举例
img=indgen(3,2)+1 ; filename=dialog_pickfile() ; read_jpeg,filename,image img1=rotate(img,1) img2=rotate(img,2) img3=rotate(img,3) img4=rotate(img,4) img5=rotate(img,5) img6=rotate(img,6) img7=rotate(img,7) img8=reverse(img,1) img9=reverse(img,2) img10=rot(img,30)
6.6 图像平滑
可以通过将每个像素值与它周围相邻像素值进 行平均来平滑图像。 均值平滑是由IDL中的功能函数Smooth完成的 ,它是在给定的奇数宽度的范围内实现等加权 值平滑。例如,如果周围是3*3宽度,那么每 个像素由它和它的周围八个像素值的平均值代 替。 Result = SMOOTH( Array, Width)
6.5 图像旋转与翻转
使用IDL进行图像处理的技巧与实践

使用IDL进行图像处理的技巧与实践
杨斌
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2011(000)020
【摘要】针对逐渐兴起的第四代可视化语言IDL进行了一些应用探讨,研究在IDL 中坐标系、透明图像和AVI视频的使用方法,并进行实验验证.实验表明,文中方法能够较为完美地实现上述应用,减少相关错误与调试时间,提高了编程效率.
【总页数】2页(P122-123)
【作者】杨斌
【作者单位】淮阴师范学院数学科学学院,江苏淮安223300
【正文语种】中文
【相关文献】
1.使用复杂技巧的图像处理 [J], 顾桓
2.图像处理软件Photoshop使用技巧 [J], 喻涛
3.浅谈在儿科护理中使用非语言沟通技巧与患儿进行沟通的效果 [J], 张娟娟;闫凌云
4.Photoshop进行图像处理的基本方法与技巧 [J], 杨启芳
5.血液透析患者使用钝针进行原点穿刺的技巧及护理 [J], 高敏;钱惠艳;沈雪云;刘萍
因版权原因,仅展示原文概要,查看原文内容请购买。
IDL在遥感图像处理中的应用

1概述交互式数据语言—IDL(Interactive Data Language)是一种语法简单、功能强大的可视化语言。
它可以应用在气象、水文、医学影像、图像处理、航空航天、信号处理等领域,能够快速地进行科学数据读写、三维数据可视化等。
具有完全面向矩阵运算、支持丰富的数据格式、拥有强大的图形处理能力、提供了大量的可视化工具、支持跨平台应用程序的开发和运行等特点。
因此十分适合遥感图像分析处理[1]。
AQUA卫星搭载的中分辨率成像光谱仪MODIS (Moderate-resolution Imaging Spectroradiometer),具有监测区域尺度大、范围广、时间分辨率高等优点。
因此MODIS遥感影像在生态、农业、气象等领域已得到广泛应用。
但遥感影像在使用过程中,需要对影像进行色彩、拉伸、增强、平滑等优化处理,才能满足应用的需求。
根据图像处理基本理论,以实例的方式介绍了IDL 对遥感影像进行不同功能处理的方法。
对应用IDL进行卫星遥感影像处理进行了初步的探索,提供了一定的借鉴思路。
2图像处理功能实现2.1图像几何变换几何变换是各种图像处理的基础,它是将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置,其实质只是改变像素的空间位置,而不改变图像的像素值,将像素在图像平面上重新安排位置[2]。
由于成像角度、透视关系、镜头自身等原因所造成的几何失真,对图像识别等带来了不便。
而适当的几何变换能够有效地解决这一问题,从而保障后续的图像处理、识别等工作的顺利进行。
文中图像几何变换处理模块主要实现了图像的平移、旋转、翻转、缩放、多种图像组合成一张图等功能。
下面选取旋转、放大功能的示例代码说明实现过程。
originalfile="D:\AQUA_X_2014_01_04_13_ 05_Modis.jpg"READ_JPEG,originalfile,imgoriginal,/GRAYSCALE image=CONGRID(imgoriginal,360,360,/INTERP) ZOOM,/NEW_WINDOW,FACT=4,XSIZE=im⁃ageSize[0],YSIZE=imageSize[1] CONGRID()函数实现了图像放大前的重采样;ZOOM()函数实现了图像的局部放大显示。
图像处理3个实验内容

图像处理实验报告格式一、封皮的填写:(1)实验课程名称:图像处理(2)实验名称:按顺序填写图像的二维离散傅立叶变换、图象的增强、图像二值化(3)年月:二、纸张要求:统一采用A4大小纸张,左侧装订,装订顺序与实验顺序一致。
三、书写要求:(1)报告除实验图像可以打印外,其余均须手写。
(2)实验图像及结果图像可以打印,图像均位于实验结果与分析部分,图像打印于纸张上部,下部空白处手写实验分析。
(3)报告中图要有图序及名称,表要有表序及名称,每个实验的图序和表序单独标号,具体格式参照毕业设计手册。
不合格者扣除相应分数。
(4)每个实验均需另起一页书写。
四、关于雷同报告:报告上交后,如有雷同,则课程考核以不及格处理。
五、报告撰写格式及实验内容如下:实验一图像的二维离散傅立叶变换一、实验目的掌握图像的二维离散傅立叶变换以及性质二、实验要求1)建立输入图像,在64⨯64的黑色图像矩阵的中心建立16⨯16的白色矩形图像点阵,形成图像文件。
对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。
2)调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上,比较变换结果。
3)调整输入图像中白色矩形的尺寸(40⨯40,4⨯4),再进行变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上,比较变换结果。
三、实验仪器设备及软件HP D538、MATLAB四、实验原理以自己的语言结合课堂笔记进行总结,要求过程推导清晰明了。
五、实验步骤及程序实验步骤、程序流程、实验源程序齐全(全部手写)六、实验结果与分析实验二图像的增强一、实验目的1)掌握在计算机上进行直方图统计,以及直方图均衡化、线性变换的图像增强的方法2)掌握在计算机上进行图象平滑、图象锐化特别是中值滤波平滑及拉普拉斯算子锐化的方法二、实验要求1)显示图像(cameraman.tif)及灰度直方图。
2)对指定图像(cameraman.tif)进行直方图均衡化和线性变换,将原始图像及增强后的图像都显示于屏幕上,比较增强的效果。
《图像处理》实验指导书

现场考核(60%)+实验报告(40%)
七、实验报告
实验结束后,撰写实验报告,实验报告主题部分应包括:算法原理、程序流程、算法各部分主 要函数代码以及功能注释、运行结果四部分,每部分占实验报告的 10%,按照撰写情况打分。
《图像处理》实验二 图像增强பைடு நூலகம்
一、实验意义及目的
(1)进一步掌握图像处理工具 Matlab,熟悉基于 Matlab 的图像处理函数。 (2)掌握各种图像增强方法。
功能:实现两幅图像相除。
调用格式:
C=imdivide(A,B)。
四、参考代码
参考代码中实现了彩色图像的灰度化、旋转、缩放两种几何变换以及镜像及拼接。
Image1=imread('peppers.jpg'); %红绿通道互换 Image2=Image1; Image2(:,:,1)=Image1(:,:,2); Image2(:,:,2)=Image1(:,:,1); imshow(Image2); imwrite(Image2,'changecolor.jpg');
《图像处理》实验指导书
蔡利梅 编
信息与电气工程学院
学生实验守则
一、学生进入实验室必须遵守实验室的规章制度,遵守课堂纪律,保持实验室的安静和整洁,爱护 实验室的一切设施。 二、实验课前要认真预习实验指导书,写出实验预习报告,并经教师批阅后方可进行实验。 三、实验课中要遵守操作规程,不要带电连接、更改或拆除线路。线路接好后,经指导老师检查后, 方可接通电源进行实验。对于软件上机实验,不得随意删改计算机中原有的文件。 四、学生实验前对实验所用仪器设备要了解其操作规程和使用方法,凡因不预习或不按使用方法进 行操作而造成仪器设备损坏者,除书面检查外,按学校规定进行赔偿。 五、实验中主意安全,遇到事故应立即关断电源并报告教师检查处理。 六、实验完毕后要做好整理工作,实验数据必须经指导教师签阅后,才能拆除线路,并将仪器、设 备、凳子等按规定放好,经同意后方可离开实验室。 七、因故缺课的学生可向实验室申请一次补做机会。无故缺课或无故迟到(15 分钟以上)的不予补 做,该次实验无成绩;累计三次者,该实验课以不及格论,并不得参加该门理论课程的考试。 八、实验室仪器设备不能擅自搬动调换,更不能擅自带出实验室。
遥感图像处理及ENVIIDL操作实践

百度文库- 让每个人平等地提升自我IDL基本操作介绍课题名称:遥感图像处理及ENVIIDL操作实践任课教师:目录一、IDL简介 (3)1.I DL特殊符号说明 (3)1.1.大写 (3)1.2.注释符 (3)1.3.续航符 (3)2.IDL语法基础 (3)1 (3)2. (3)2.1.变量 (3)2.2.数组 (5)3.IDL编程基础 (6)1. (6)2. (6)3. (6)3.1.定义和编译程序 (6)3.2.命名和编译源文件 (7)3.3.程序控制语句 (7)二、IDL基本操作介绍 (9)1.题目及要求 (9)2.解决方案 (9)1 (9)2 (9)2.1数据说明 (9)2.2二进制文件读取 (10)2.3各像元的线性变化趋势及显著性概率计算 (12)2.4有效物候区返青期平均变化趋势统计 (14)2.5制图输出线性变化趋势 (17)三、总结 (26)一、IDL简介IDL(Interactive Data Language)交互式数据语言是进行二维及多维数据可视化分析及应用开发的理想软件工具。
作为面向矩阵、语法简单的第四代可视化语言,IDL 致力于科学数据的可视化和分析,是跨平台应用开发的最佳选择。
它集可视、交互分析、大型商业开发为一体,为用户提供了完善、灵活、有效的开发环境。
IDL为用户提供了可视化数据分析的解决方案,既可以让科学研究人员交互式浏览和分析数据,又为程序员提供了快速程序原型开发并跨平台发布的高级编程工具。
IDL使科学家无需写大量的传统程序就可直接研究数据。
IDL被广泛应用于地球科学、医学影像、图像处理、软件开发、大学教学、实验室研究、测试技术、天文、信号处理、防御工程、数学分析、统计等诸多领域。
1.IDL特殊符号说明在IDL程序中,当在命令行中输入命令时,IDL将会识别大量的特殊字符。
下面介绍几种较为重要的特殊符号。
1.1.大写IDL 对字母的大小写并不敏感,但与操作系统打交道的命令(例如:UNIX 操作系统对IDL 所打开的文件名的大小写敏感)和执行字符串比较命令时除外。
IDL 图像处理

2、读取图像数据 • IDL中提供了丰富的图像读取工具,通用的有 IDL中提供了丰富的图像读取工具 中提供了丰富的图像读取工具, Read_Image,也有针对特定图像格式的读取函数, Read_Image,也有针对特定图像格式的读取函数,如 Read_BMP,Read_JPEG,Read_GIF,Read_TIFF等等 等等。 Read_BMP,Read_JPEG,Read_GIF,Read_TIFF等等。 • Data=Read_Image(file) • IDL直接支持的图像格式: IDL直接支持的图像格式 直接支持的图像格式: bmp,DICOM,GIF,Interfile,JPEG,JPEG2000,MPEG,MrSI D,PNG,PPM,SRF,TIFF,X11 Bitmap,XWD • IDL支持的科学数据格式: IDL支持的科学数据格式 支持的科学数据格式: CDF v2.7 HDF4.1 HDF5 1.6.3 HDFHDF-EOS v2.8 NCDF 3.5
IDL 图像处理
一、图像数据的输入和输出
1、图像信息的获取 • 在使用图像文件时,应该首先搞清楚图像文件的结构 在使用图像文件时, 信息。分析图像文件信息可以使用IDL IDL提供的函数 信息。分析图像文件信息可以使用IDL提供的函数 QUERY_IMAGE。该函数可以查询IDL支持的任何图像文 QUERY_IMAGE。该函数可以查询IDL支持的任何图像文 IDL 件。 • 格式:Result = QUERY_IMAGE ( Filename,info) 格式: Filename,
Congrid与Rebin很相似,除了下面两个方面外,第一, Congrid与Rebin很相似,除了下面两个方面外,第一, 很相似 在新图像中的列数和行数可以设为任意值。第二, 在新图像中的列数和行数可以设为任意值。第二,在 缺省情况下,用的是最邻近采样法。 缺省情况下,用的是最邻近采样法。如果想用双线性 插值,必须设置关键字Interp Interp: 插值,必须设置关键字Interp: IDL>Window,XSize=600,YSize=400 IDL>new=Congrid(image,600,400,/Interp) IDL>TVScl,new
IDL入门教程三(下)

平滑图像可以通过将每个像素值与它周围相邻像素值进行平均来平滑图像。
这就是均值或方盒平滑。
均值平滑是由I DL中的功能函数S m ooth完成的,它是在给定的奇数宽度的范围内实现等加权值平滑。
例如,如果周围是3*3宽度,那么每个像素由它和它的周围八个像素值的平均值代替。
比较一幅没有经过平滑处理的图像和经过5*5 方盒的均值平滑处理后的图像,键入:IDL>Window,0,XSize=192*3,YSize=192IDL>TV,image,0,0IDL>smooth ed=Smooth(image,5,/Edge_T runca te)IDL>TV, smooth ed, 192, 0注意,与命令Smo oth一起使用的关键字Edge_Trun cate。
该关键字可复制图像边缘附近的像素,以便实现整幅图像的平滑。
如果不使用该关键字,图像边缘附近的像素仅仅是简单复制,而没有平滑。
图像平滑被应用在一种称作晕光蒙片的图像处理技术中。
这种技术可用作定位图像上的棱边或者是像素值突然变化的地方。
这种技术非常简单:从未平滑的图像中减去平滑的图像即可。
键入:IDL>TV, ((image-smooth ed)+255)/2.0, 2*192, 0图像显示应如图36所示。
用Smoot h命令,赋给相邻的像素值相等的权值来计算平均值。
有时会导致出现不希望的模糊图像。
另一种方式是用称为卷积的过程来平滑图像。
这种技术中,一个方形内核和图像一起参与卷积计算。
例如,在3*3的情况下,Smooth命令使用的内核为:1 1 11 1 11 1 1如果给予中心像素值更大的权值,而它周围像素值的权值小一些,图像就不会那么模糊了。
61-实验三遥感图像预处理(波段合成、裁剪与拼接)

实验三遥感图像预处理(波段合成、裁剪与拼接)一、 实验目的通过实验了解整个图像的预处理过程,从而加深对遥感图像计算机处理的内容及概念的理解。
二、 实验内容1.自定义坐标系2.波段合成(图像融合)3.图像镶嵌(图像拼接)4.图像裁剪三、 实验数据1. TM-30m.img2. bldr_sp.img3. Mosaic1.img4. Mosaic2.img5. bhtmsat.img6. can_tmr.img7. qb_boulder_msi.img8. qb_boulder_pan.img四、 实验操作原理及步骤遥感图像预处理主要包括图像几何校正、图像融合、图像镶嵌、图像裁剪等过程,其处理顺序一般如下图所示。
图 1一般图像预处理流程1.自定义坐标系一般国外商业软件坐标系都分为标准坐标系和自定义坐标系两种。
我国情况较为特殊,往往需要自定义坐标系。
所以,在ENVI第一次使用时,需要对系统自定义北京54坐标系西安80坐标系。
1.1添加参考椭球体找到ENVI系统自定义坐标文件夹—C:\Program Files\ITT\IDL708\products\envi46\map_proj。
根据每台电脑安装的路径以及版本不同而略有不同。
以记事本形式打开ellipse.txt,将“Krasovsky,6378245.0,6356863.0”和“IAG-75,6378140.0,6356755.3”加入文本末端。
(这里主要是为了修改克拉索夫斯基因音译而产生的错误,以便让其他软件识别;另外中间的逗号必须是英文半角。
)1.2添加基准面以记事本格式打开datum.txt,将“Beijing-54, Krasovsky, -12, -113, -41”和“Xi'an-80,IAG-75,0,0,0”加入文本末端。
1.3定义坐标定义完椭球参数和基准面后就可以在ENVI中以我们定义的投影参数新建一个投影信息(Customize Map Projections),在编辑栏里分别定义投影类型、投影基准面、中央子午线、缩放系数等,最后添加为新的投影信息并保存。
IDL 图像处理

2、图像转置 图像转置是指利用TRANSPOSE函数, TRANSPOSE函数 图像转置是指利用TRANSPOSE函数,对图像进行以对角 线为中心轴的图像数组数据的转置调整。其具体方法为: 线为中心轴的图像数组数据的转置调整。其具体方法为: 使用函数READ_* 读取任意指定格式的图像文件; READ_*, (1)使用函数READ_*,读取任意指定格式的图像文件; 利用TRANSPOSE函数对二维图像数据进行转置调整; TRANSPOSE函数对二维图像数据进行转置调整 (2)利用TRANSPOSE函数对二维图像数据进行转置调整; 显示转置调整后的图像; (3)显示转置调整后的图像; 使用函数WRITE_* 写入任意指定格式的图像文件。 WRITE_*, (4)使用函数WRITE_*,写入任意指定格式的图像文件。
读取图像数据; (1)读取图像数据; 读取数据; (2)读取数据; 使用类IDLgrWindow创建显示窗口,并设置显示模式; IDLgrWindow创建显示窗口 (3)使用类IDLgrWindow创建显示窗口,并设置显示模式; 使用类IDLgrView创建显示视图对象,并设置视图属性; IDLgrView创建显示视图对象 (4)使用类IDLgrView创建显示视图对象,并设置视图属性; 使用类IDLgrModel创建显示模式对象,并设置显示模式属性; IDLgrModel创建显示模式对象 (5)使用类IDLgrModel创建显示模式对象,并设置显示模式属性; 对于伪彩模式,使用类IDLgrPalette创建颜色表; IDLgrPalette创建颜色表 (6)对于伪彩模式,使用类IDLgrPalette创建颜色表; 使用类IDLgrSurface和高程数据或者曲面数据创建曲面对象, IDLgrSurface和高程数据或者曲面数据创建曲面对象 (7)使用类IDLgrSurface和高程数据或者曲面数据创建曲面对象, 并设置曲面属性; 并设置曲面属性; 使用类IDLgrImage和图像数据创建图像对象,并设置图像属性; IDLgrImage和图像数据创建图像对象 (8)使用类IDLgrImage和图像数据创建图像对象,并设置图像属性; IDLgrModel对象中 添加曲面对象和图像对象; 对象中, (9)在IDLgrModel对象中,添加曲面对象和图像对象; 10) IDLgrView对象中 添加IDLgrModel图像对象; 对象中, IDLgrModel图像对象 (10)在IDLgrView对象中,添加IDLgrModel图像对象; 11)使用IDLgrWindow对象的DRAW方法,显示贴图图像; IDLgrWindow对象的DRAW方法 (11)使用IDLgrWindow对象的DRAW方法,显示贴图图像;或者使用 XOBJVIEW交互显示贴图 交互显示贴图。 XOBJVIEW交互显示贴图。
IDL编程实现图像处理

IDL编程实现图像处理pro exampleENVI, /RESTORE_BASE_SAVE_FILESENVI_BATCH_INITtlb=widget_base(column=1,mbar=mbar,title='Example',tlb_frame_attr=1,x offset=500,yoffset=100,xsize=800,ysize=600,RESOURCE_NAME = 'example')filemenu=widget_button(mbar,value='File')fileopt1=widget_button(filemenu,value='Open',event_pro='open_event') fileopt2=widget_button(filemenu,value='Save',/menu)Save1= widget_button(fileopt2,value = 'binary',uname = 'savebinary') Save2= widget_button(fileopt2,value = 'jpg',uname = 'savejpg')Save3= widget_button(fileopt2,value = 'bmp',uname = 'savebmp')Save4= widget_button(fileopt2,value = 'tif',uname = 'savetif')Save5= widget_button(fileopt2,value = 'dat',uname = 'savedat')fileopt3=widget_button(filemenu,value='Exit',event_pro='exit_event',/ separator)editmenu=widget_button(mbar,value='Edit')processopt1=widget_button(editmenu,value='K-L Transform',event_pro='K_L_event',/separator)processopt2=widget_button(editmenu,value='HistogramEqualization',event_pro='HistogramEqualization_event',/separator) processopt3=widget_button(editmenu,value='NDVI',event_pro='NDVI_event ',/separator)processopt5=widget_button(editmenu,value='ImageSmoothing',event_pro='IS_event')processopt4=widget_button(editmenu,value='edge enhancement',/menu) imageopt1=widget_button(processopt4,value='robort',event_pro='robort_ event')imageopt2=widget_button(processopt4,value='sobel',event_pro='sobel_ev ent')imageopt3=widget_button(processopt4,value='prewitt',event_pro='prewitt_event')helpmenu=widget_button(mbar,value='Help')idlhelp=widget_button(helpmenu,value='IDLhelp',event_pro='help_event')iconbase=widget_base(tlb,row=1,/frame)subdir='resource/bitmaps'mapfile=filepath('open.bmp',subdir=subdir)iconopt1=widget_button(iconbase,value=mapfile,/bitmap,event_pro='open _event')mapfile=filepath('save.bmp',subdir=subdir)iconopt2=widget_button(iconbase,value=mapfile,/bitmap,event_pro='Save _event')button5=widget_button(iconbase,value='new.bmp',/bitmap,event_pro='new _event')button3=widget_button(iconbase,value='zoom_in.bmp',/bitmap,uvalue='su oxiao')button4=widget_button(iconbase,value='zoom_out.bmp',/bitmap,uvalue='f angda')help =widget_button(iconbase,value = filepath('help.bmp',subdirectory = ['resource','bitmaps']),/bitmap,event_pro='help_event')draw=widget_draw(tlb,x_scroll_size=780,y_scroll_size=550,xsize=1000,y size=1000,xoffset=200,/button_events)file=''data=BYTARR(2,2,2)pdata = bytarr(2,2,2)status=0pstate=ptr_new({draw:draw,file:file,data:ptr_new(data),pdata:ptr_new( pdata)})widget_control,tlb,set_uvalue=pstatewidget_control,tlb,/realizeXMANAGER, 'example', tlb,/no_blockendpro open_event,eventcompile_opt IDL2envi,/restore_base_save_filesenvi_batch_initwidget_control,event.top,get_uvalue=pstatefilters = ['*.jpg','*.bmp','*.img','*.tif','*.jpeg','*.png'] file = DIALOG_PICKFILE(/READ, FILTER = filters)envi_open_file,file,r_fid=fidif fid eq -1then returnenvi_file_query,fid,dims=dims,nb=nb,nl=nl,ns=ns,bnames=bnames pos=indgen(nb)(*pstate).file=filebasename=file_basename(file)f1=strpos(basename,'.')type=strmid(basename,f1+1,strlen(basename)-f1)type=strupcase(type)widget_control,(*pstate).draw,get_value=drawwset,drawCASE TYPE OF'JPEG': BEGINREAD_JPEG,FILE,DATATV,DATA,/TRUE*((*PSTATE).DATA)=DATAEND'PNG' :BEGINREAD_PNG,FILE,DATATV,DATA,/TRUE*((*PSTATE).DATA)=DATAEND'JPG': BEGINREAD_JPEG,FILE,DATATV,DATA,/TRUE*((*PSTATE).DATA)=DATAEND'BMP': BEGINDATA=READ_BMP(FILE)TV,DATA,/TRUE*((*PSTATE).DATA)=DATAEND'DAT': BEGINDATA = BYTARR(NS,NL,NB)OPENR,LUN,FILE,/GET_LUNREADU,LUN,DATATVSCL,DATAFREE_LUN,LUN*((*PSTATE).DATA)=DATAEND'IMG': BEGINdata = bytarr(ns,nl,nb)data= ENVI_GET_DATA(fid=fid, dims=dims, pos=pos)WIDGET_CONTROL,(*pstate).draw, GET_VALUE=drawWSET, drawtvscl,data,/order*((*pstate).data)=dataEND'TIF': BEGINDATA=BYTARR(NS,NL,NB)DATA= ENVI_GET_DATA(FID=FID, DIMS=DIMS, POS=POS) TVSCL,DATA,/ORDER*((*PSTATE).DATA)=DATAEND'TIFF': BEGINDATA=BYTARR(NS,NL,NB)DATA= ENVI_GET_DATA(FID=FID, DIMS=DIMS, POS=POS) TVSCL,DATA,/ORDER*((*PSTATE).DATA)=DATAENDENDCASEendpro save_event,eventwidget_control,event.top,get_uvalue=pstatefile=(*pstate).filesavefile= dialog_pickfile(title='save',path = 'D:')if savefile eq''thenbeginvoid = dialog_message('No file!',/error)returnendifa=strpos(savefile, '.')b=strlen(savefile)type = strmid(savefile,a+1, b-a)case type of'save':beginfile=(*pstate).fnameENVI_OPEN_FILE,file,r_fid=fidif fid eq -1thenbeginvoid=DIALOG_MESSAGE('file inputed error',/information) ENVI_BATCH_EXITreturnendiffilename=DIALOG_PICKFILE(title='choose file saved position',filter='*.jpg')write_jpeg, filename+'.jpg', *((*pstate).data), /true end'jpg' : beginwrite_JPEG,savefile,dataend'png' : beginwrite_png,savefile,dataend'bmp' : beginwrite_bmp,savefile,dataend'tif': beginwrite_tiff,savefile,dataend'dat': beginopenw,lun,binary,/get_lunwriteu,savefile,dataendendcasehelp, event, /structIF event.SELECT THEN WIDGET_CONTROL, event.TOP, /DESTROYendpro help_event,evevtcompile_opt IDL2envi,/restore_base_save_filesenvi_batch_initONLINE_HELPENDpro exit_event, eventhelp, event, /structIF event.SELECT THEN WIDGET_CONTROL, event.TOP, /DESTROYendpro K_L_event,eventcompile_opt IDL2envi,/restore_base_save_filesenvi_batch_initwidget_control,event.top,get_uvalue=pstatefile=(*pstate).fileenvi_open_file,file,r_fid=fidif fid eq -1thenbeginreturnendifenvi_file_query,fid,dims=dims,nb=nbpos=lindgen(nb)envi_doit,'envi_stats_doit',fid=fid,pos=pos,dims=dims,mean=avg,eval=e val,evec=evec,comp_flag=5envi_doit,'pc_rotate',$fid=fid,pos=pos,dims=dims,mean=avg,eval=eval,evec=evec,$out_dt=4,out_name=out_name,out_nb=nb,r_fid=r_fid,/forward,/in_memory envi_file_query,r_fid,dims=dims,nb=nb,ns=ns,nl=nldata =bytarr(ns,nl,nb)data= envi_get_data(fid=fid,dims=dims,pos=pos)window,1,xsize=ns,ysize=nl,title='spatial principal componentanalysis'tv,data,/orderendpro ndvi_event,eventcompile_opt IDL2envi,/restore_base_save_filesenvi_batch_initwidget_control,event.top,get_uvalue=pstatefile=(*pstate).filedata=*((*pstate).data)envi_open_file,file,r_fid = fidenvi_file_query, fid, dims=dims,nb=nb,ns=ns,nl=nlpos = [4,3] - 1envi_doit,'ndvi_doit',fid=fid, pos=pos, dims=dims,/check, o_min=0, o_max=255,r_fid=r_fid,/inme_moryenvi_file_query,r_fid,dims = dims,nb = nb,ns=ns,nl=nldata = BYTARR(ns,nl,nb)data= ENVI_GET_DATA(fid=r_fid, dims=dims, pos=pos)window,3,title='NDVI'TVSCL,data,/orderendpro HistogramEqualization_event,eventwidget_control,event.top,get_uvalue=pstatedata=*((*pstate).data)file=(*pstate).fileenvi_open_file,file,r_fid=fidenvi_file_query,fid,dims=dims,nb=nb,ns=ns,nl=nlWINDOW, 1, TITLE = 'The original image histogram'plot,HISTOGRAM(data)result =HIST_EQUAL(data); ADAPT_WINDOW, 2,xsize = ns,ysize = nl,TITLE = 'histogram matching'TV, result,/orderWINDOW, 3, TITLE = 'After the image histogram matching'plot,HISTOGRAM(result)endpro IS_event,eventwidget_control,event.top,get_uvalue=pstatefile=(*pstate).fileenvi_open_file,file,r_fid=fidenvi_file_query,fid,dims=dims,nb=nb,ns=ns,nl=nl if fid eq -1then returndata=smooth(*((*pstate).data),3)window,1,xsize=ns,ysize=nl,title='smoothing' tvscl,data,/orderendpro robort_event,eventwidget_control,event.top,get_uvalue=pstatedata=*((*pstate).data)file=(*pstate).fileenvi_open_file,file,r_fid=fidenvi_file_query,fid,dims=dims,nb=nb,ns=ns,nl=nlDATA=DATA(*,*,1)DATA=ROBERTS(DATA)window,1,xsize=ns,ysize=nl,title='roberts'tvscl,data,/orderendpro sobel_event,eventwidget_control,event.top,get_uvalue=pstateDATA=*((*PSTATE).DATA)file=(*pstate).fileenvi_open_file,file,r_fid=fidenvi_file_query,fid,dims=dims,nb=nb,ns=ns,nl=nlDATA=DATA(*,*,1)DATA= SOBEL(DATA)window,1,xsize = ns,ysize = nl,title='sobel' TVSCL,data,/ORDERendpro prewitt_event,eventfile=(*pstate).fileENVI_OPEN_FILE,file,r_fid=fidENVI_FILE_QUERY,fid,dims = dims,nb = nb,ns=ns,nl=nl IF fid EQ -1THENBEGINvoid=DIALOG_MESSAGE('window',/information)ENVI_BATCH_EXITRETURNendifresult=prewitt(*((*pstate).data))window,1,xsize = ns,ysize = nl,title='window' TVSCL,result,/order*((*pstate).pdata) = resultWIDGET_CONTROL,ev.top,get_Uvalue = pstateend。
图像处理知识及IDL实现

Pro ZoomImagedirect file = filepath('convec.dat', subdirectory = ['examples', 'data']) imagesize = [248, 248] image = read_binary(file, data_dims = imagesize) device, decomposed = 0 & loadct, 0 window, 1,xsize=imagesize[0],ysize=imagesize[1],title='grey image' tv, image zoom, /new_window, fact=2,xsize=imagesize[0],ysize=imagesize[1] End
31
SLIDE_IMAGE , Image, /BLOCK, RETAIN={0|1|2} , TITLE=string, XSIZE=width, YSIZE=height 示例
PRO PanImageDirect file = filepath('nyny.dat', subdirectory = ['examples', 'data']) imagesize = [768, 512] image = read_binary(file, data_dims = imagesize) device, decomposed = 0 loadct, 0 slide_image, image END
7
CMYK模式 RGB模式 (用于显示打印)
● 特点:色彩鲜艳
(用于印刷)
● 特点:色彩灰暗
DIP实验报告-彩色图像处理

.课程:数字图像处理课程作业实验报告实验名称:Color Image Processing实验编号:签名:姓名:学号:截止提交日期:年月日摘要:本次实验学习一些基本的彩色图像增强处理方法,主要有两部分:一是编写一个程序实现将一个灰度级范围显示为指定的彩色,其余的像素以 RGB 形式显示为与输入图像对应像素相同的灰度色;二是用直方图均衡化程序对 R, G 和 B分量图分别进行直方图均衡化,然后将结果图转换回 jpg 格式;用三个直方图构成一个平均直方图,以此直方图为基础得到单一的直方图均衡化强度变换函数。
将该函数分别单独作用到 R, G 和 B 分量图上,将结果图转换为 jpg 格式。
比较并两个图像的差异。
一、技术论述1、伪彩色处理伪彩色处理是把黑白图像的各个不同灰度级按照线性或非线性的映射函数变换成不同的彩色,得到一幅彩色图像的技术。
使原图像细节更易辨认,目标更容易识别,能够成为。
伪彩色增强的方法主要有密度分割法、灰度级一彩色变换和频率域伪彩色增强三种。
本次实验采用课本图6.23原理进行伪彩色处理,其功能框图如下:图1 伪彩色处理框图在RGB 颜色模型中,任何一种颜色都可以由红、绿、蓝三基色按不同比例来合成,因此灰度图像的伪彩色处理首先要设定红、绿、蓝三个变换函数,用下面的配色方程表示就是:)},({),(y x f T y x R R = (2.1) )},({),(y x f T y x G G = (2.2))},({),(y x f T y x B B = (2.3)式中),(),,(),,(y x B y x G y x R 分别显示三色值,B G R T T T ,,对映射算子。
),(y x f 为一幅黑白平面图像上其对应点(x ,y)上的光点强度即灰度值。
通过公式可得到相应灰度值的R ,G ,B 颜色分量值。
本次实验要求将给定范围的灰度值转换为彩色,其他保持不变,这样就比较简单,只需找出要处理的灰度值范围,用彩色代替即可。
使用IDL进行图像处理的技巧与实践

动画的注意点和应用方法 ,为科学研究提供应用基础和方法。
面的信息是 否可以丢失 :图 3 ()为原 图 , () 为丢失 A— a b l pa h 通道信息后显示 的图像 ,可见 与实际 P G图像 差别很大 , N
无法应用 。而将 Ap a通道 的信 息显 示 出来 ,如 图 3 ()所 lh c
C靠 o 帐 妯 MP EG T S 。 E T l >确 蹬 l赋 DL e M 瞧 ts : 17 O O e t .甜 ∞
—
一
瞅 . “ p
记 录格式 ( a dIt lae yLn ,B L B n e evdb ie I)的 图像 更 为容易 , nr 可以使用 Ta soe0 g,f,,/ rnps mae 1 0)方法 首先进 行转 换 ,然后 2
电脑 编 程 技 巧 与维 护
使 用 I L进行 图像处理 的技巧 与实践 D
杨斌
( 阴师范学 院数学科学 学院 ,江 苏 淮安 2 30 ) 淮 2 3 0 摘 要 : 针对逐渐 兴起 的第四代可视化 语言 I L进行 了一 些应 用探讨 ,研 究在 I L中坐标 系、透 明图像 和 A I D D V 视
航 空器研究 。I L还参与 了 2 0 D 0 4年火 星探测计划 的测 试和传
感 器设计 ,J L的科 学家利用 I L对 “ P D 勇气 号”和 “ 机遇号 ”
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三IDL图像处理目的:掌握IDL图像处理的手段内容:1、显示图像事实上,任何类型的二维数据集都可认为是一幅图像。
但是要在一个8位的显示设备上显示图像数据,就必须将图像数据调整为 0~255之间的字节型数值。
(在一个24-bit的显示设备上,24位图像的RGB值必须调整成字节型数值)。
因为图像总是以字节型数值显示,所以图像总是以字节型数组来存储。
但是无论图像是怎样存储的,在IDL中,图像总是由两个显示图像的IDL命令:TV和TVScl以字节型数值来完成。
可用TV和TVScl两个IDL命令中的任一个来显示图像。
这两个命令几乎在各个方面都是一样的,包括能与之一起使用的关键字。
仅仅在一个方面不同:TVScl将图像数据调整为与IDL运行时所用颜色数目相适应的字节型数值。
注意,与Plot,Surface和Contour命令不同,TV和TVScl命令在显示图像之前不删除窗口中已显示的内容。
一般情况下这个问题影响不大,但有时候也会产生一些麻烦。
如果想要一个空白的显示窗口来显示图像数据,无论当前窗口上的显示内容是什么,都可用一个简单的命令Erase来删除。
IDL>Erase要了解这两个命令是怎样工作的,需要有一些图像数据用于处理。
用命令LoadData来打开图像数据集Ali and Dave。
将要处理这两幅图像数据中的第二幅图像。
键入IDL>image=LoadData(10)IDL>image=image[*,*,1]打开一个显示窗口,装上灰度颜色表, 用TV命令显示图像:IDL>Window,0,XSize=192,YSize=192IDL>TV,image所得图像:IDL和Research Systems公司的创始人--David Stern的图像。
People.dat数据集中的另外一幅图像是Ali Bahrami,Research Systems公司的第一位员工。
他们两人依然致力于IDL的开发因为使用的是TV命令,所以数据没有经过拉伸就被送到显示器中显示。
因为这幅图像数据最大值为238,所以差别是很微弱的。
如果用TVScl命令显示图像,也许能看出差别。
打开另一个窗口并将其移到第一个窗口的旁边。
用TVScl命令显示图像:IDL>window,1,XSize=192,YSize=192IDL>TVScl,image可看到两个图像的明暗程度不同。
如果看不出差别,可先在0~255之间对数据进行调整:IDL>Window,0,XSize=192,YSize=192IDL>image=Bytscl(image) bytscl是拉伸函数IDL>tv,imageIDL>window,1,XSize=192,YSize=192IDL>tvscl,image在窗口2中看到的图像应与窗口1中的图像一样。
这就是所说的,TVScl将数据调整为与IDL运行时所用颜色数目相适应的字节型数值。
用不同的颜色表显示图像当在16位或24位显示器上运行时,使用不同的颜色表和装入颜色并显示图像一样简单。
例如,如果正在一个16位或24位的显示器上运行时,可以试一试:IDL>Device,Decomposed=0IDL>world=LoadData(7)IDL>Window,1,Title=‘Gray Scale Image’IDL>LoadCT,0IDL>TV,worldIDL>Window,2,Title=‘Color Image’IDL>LoadCT,5IDL>TV,world控制图像显示顺序通常,当IDL显示一幅图像时,习惯上图像的第0列和第0行为图像的左下角。
有些人喜欢将图像的第0列和第0行作为图像的左上角。
如果喜欢第二种习惯方式,可以通过设置系统变量!Order让IDL使用习惯。
在缺省时,!Order设为0。
如果希望将所有图像的左上角都显示在第0列和第0行,可设置!Order=1。
如果只是希望用第二种方式显示某幅图像,可在使用TV或TVScl命令时,用关键字Order设置。
例如,可以同时观看两种显示方式,键入:IDL>LoadCT,0IDL>Window,XSize=192*2,YSize=192IDL>TVScl,image,Order=0IDL>TVScl,image,Order=1,192,0----起始点可能您从别人那儿得到一个图像数据文件,显示时发现图像倒过来了。
这大多是因为创建数据文件的人在排放第0列和第0行时用了不同的习惯。
将关键字Order的值反过来,看是否纠正了错误。
改变图像尺寸IDL提供了两个改变图像大小的命令:Rebin和Congrid 。
Rebin的限制为新建图像的尺寸必须是原始图像尺寸的整数倍或整数比例。
例如,变量image可以在X方向或Y方向上变化为192/2和192*3个元素。
但不应该是300或500个元素。
图像大小也可以在一个方向减小,另一个方向增大。
例如,可将变量image重新变化为384列和96行,键入如下命令。
IDL>Window,XSize=384,YSize=96IDL>new=Rebin(image,384,96)IDL>TVScl,new输出图像:用Rebin命令缩放的图像其大小必须与原始图像大小有整数倍关系在缺省情况下,当放大一幅图像时Rebin采用双线性插值,当缩小一幅图像时则采用最邻近平均法。
如果关键字Sample被设定后,在两个方向上都可用最邻近采样法。
双线性插值更为精确,但需要更多的计算时间。
IDL>Window,XSize=192/2,YSize=192/2IDL>new=Rebin(image,96,96,/Sample)IDL>TVScl,newCongrid与Rebin很相似,除了下面两个方面外,第一,在新图像中的列数和行数可以设为任意值。
第二,在缺省情况下,用的是最邻近采样法。
如果想用双线性插值,必须设置关键字Interp:IDL>Window,XSize=600,YSize=400IDL>new=Congrid(image,600,400,/Interp)IDL>TVScl,new在显示窗口中定位图像通常显示一幅图像时,IDL 将图像的左下角放在窗口的左下角。
但是可通过TV 或TVScl 命令的附加参数来将图像移动到显示窗口中的其他位置。
位置可从显示器的左上角开始,一直到显示器的右下角。
例如,在384*384的显示窗口内,从显示器的左上角开始,对于192*192的图像来说有四种位置。
键入:IDL>Window,XSize=384,YSize=384IDL>TVScl,image,0IDL>TVScl,image,1IDL>TVScl,image,2IDL>TVScl,image,3通过显式地指定图像左下角的象素位置来定位一幅图像是可以的。
TV 或TVScl 命令中在图像数据名后给定两个附加参数即可以实现这点。
例如,将一幅192*192名为image 的图像定位于刚刚创建的显示窗口中间。
可键入:IDL>Erase,Color=!D.Table_Size-1IDL>TVScl,image,96,96这样,将图像的左下角放在像素点(96,96)处。
当希望为附加图留下空间时,如色标或其他的注释,这种定位图像的方法是很重要的。
例如,键入如下命令来在窗口的左边显示一个色标,在窗口的右边显示图像。
显示窗口如下:此图像用颜色标来显示其颜色梯度IDL>Window,XSize=320,YSize=320IDL>Erase,color=!D.Table_Size -1IDL>colorbar=Replicate(1B,20)#BIndGen(256)IDL>TV,BytScl(colorbar),32,36 IDL>TV,BytScl(image),92,64 宽度 竖直是0-255位置从窗口中读取图像有时您可能花了许多时间,运行了许多命令,才得到了喜欢的图形显示。
将图形显示读到一个图像变量中以便处理甚至硬拷贝输出是很方便的。
因此,现在需要知道如何得到IDL 图形窗口的拷屏。
可以用TVRD命令将IDL图形窗口的内容读到一个2维IDL字节型数组中。
可键入如下命令:IDL>Window,XSize=250,YSize=250IDL>TVScl,imageIDL>new_image=TVRD()IDL>Help,new_image注意,新创建的变量现在是一个250*250字节的数组。
读取显示图像的一部分如果只想读显示窗口的某一部分,可指定想要的部分窗口的左下角的像素坐标和要读取的列和行的数目。
换句话说,能指定矩形区域。
例如,如果只想捕获上述头像的脸部,可键入:IDL>new_image=TVRD(40,30,110,130)在IDL中,从显示器读取的2维数组可以像处理其他图像那样进行处理。
如果需要显示,可键入:IDL>EraseIDL>TV, new_image使用下列语句获取图像,然后进行下列练习IDL>image=LoadData(10)IDL>image=image[*,*,0]2、练习(1)、使用loadct,6导入颜色表,显示image图像(2)、绘制下图(3)、使用白色背景,调用颜色表7(loadct,7)显示下图2、图像处理直方图均衡化如果观察图像中的像素值分布,往往会发现分布趋向集中在一个狭窄的数值范围内。
实际上,图像有一个非常窄的动态颜色范围。
如果像素分布开,以致使像素值的每个子范围都与这些像素值一样拥有数目大约相同的像素,则该图像的信息内容就有可能增加。
将像素分布到整个颜色范围的过程叫做直方图均衡化。
例如,用LoadData命令打开数据集CT Scan Thoracic Cavity。
这是一幅CT扫描图像,该图像具有一个狭窄的动态颜色范围。
IDL>scan=LoadData(5)要看变量scan的像素值分布的柱状图,键入如下命令。
显示图像窗口如下:正常图像具有狭窄的像素值分布。
这里的像素值集中在50-100之间IDL>LoadCT,0IDL>Window,0,XSize=600,YSize=250IDL>TV,scanPosition=[0.5,0.15,0.95, 0.95]可以看到大多数像素值落在50~100之间。
将像素分布至整个颜色范围内,使得每种颜色值都有大致相同的像素个数,键入:IDL>equalized=Hist_Equal(scan)为查看新的像素分布柱状图和 HISTOGRAM-EQUALIZED图像,键入:IDL>Window, 1, XSize=600, YSize=250IDL>TV, equalizedIDL>Plot, Histogram(equalized), Max_Value=5000, $Position=[0.5, 0.15, 0.95, 0.95], /NoErase直方图均衡化后的图像:一幅直方图均衡化后的图像。