图形图像实验一1

合集下载

python图像变换实验心得

python图像变换实验心得

python图像变换实验心得python 图像变换实验心得, Python 图像变换实验心得实验一:用 pytho 制作一张可以让鼠标移动的图片,要求是让鼠标在图片上面能够随意移动。

实验二:利用模块对图片进行缩放和旋转处理,最终得到让鼠标在图片上移动不同角度的图片。

这两个任务其实都很简单,大家也应该比较熟悉,因此我就不多说了。

看了实验要求后我们开始写代码来实现我们的实验目标,首先我们使用 opencv 来对图片进行缩放操作,使得鼠标可以移动到图片的每一个位置,然后我们使用 cursor 函数来获取鼠标当前的位置,接着我们再次使用 opencv 来完成对图片的旋转操作,让鼠标始终指向图片中心点,最后我们使用 shapeatrof 函数来将图片进行对齐,然后将图片保存起来。

我还记得刚接触 Python 时,那会儿我的第一个 Python 项目就是用它来做图像处理的,这个图像处理包括图片缩放、旋转、图片的对齐等功能,现在看来我的那个项目基本已经过时了,不过还好,我在这里又学习了新知识,而且这些知识都非常实用。

这几天我在学习Python 的过程中发现它是一门非常强大的编程语言,而且这种编程语言不仅能够解决图形图像处理问题,还能够解决一些复杂的数据分析与运算问题,比如数据库、网络通信、自然语言处理、机器人控制、人工智能等等。

而且 Python 的数据结构非常灵活,这样就给我们提供了很多可选择的编程范式,从而为我们解决各类问题带来更多的便捷性。

然而这个命令并没有什么特别的地方,只是一个简单的缩放命令,我们只需要按照实际情况输入合适的数值就可以了。

但是当我们想把图片旋转或者放大时,就需要用到 modulolphide 函数了,这个函数的作用就是让图片沿水平轴旋转或者垂直轴翻转。

(整理)实验一特殊函数与图形37346

(整理)实验一特殊函数与图形37346

第一周特殊函数与图形一、问题背景与实验目的著名的Riemann函数大家都很熟悉了,但是关于它的图像你是否清楚呢?除了最上面那几点,其他都很难画吧?你想不想看看下面那些“挤在一起”的点是怎样分布的呢?还有几何中的马鞍面、单叶双曲面等是怎样由直线生成的,是不是也想目睹一下呢?这些,都离不开绘图.实际上绘图一直是数学中的一种重要手段,借助图形,往往可以化繁为简,使抽象的对象得到明白直观的体现.比如函数的基本性质,一个图形常可以使之一目了然,非常有效.它虽不能代替严格的分析与证明,但在问题的研究过程中,可以帮助研究人员节约相当一部分精力.此外,它还可以使计算、证明、建模等的结果得到更明白易懂的表现,有时,这比科学论证更有说服力.同时,数学的教学与学习过程也离不开绘图.借助直观的图形,常可以使初学者更容易接受新知识.如数学分析中有不少函数,其解析式着实让人望而生畏,即使对其性质作了详尽的分析,还是感到难明就里;但如果能看到它的图形,再配合理论分析,则问题可以迎刃而解.又如在几何的学习中,会遇到大量的曲线与曲面,也离不开图形的配合.传统的手工作图,往往费力耗时,效果也不尽理想.计算机恰恰弥补了这个不足,使你可以方便地指定各种视角、比例、明暗,从各个角度进行观察.本实验通过对函数的图形表示和几个曲面(线)图形的介绍,一方面展示它们的特点,另一方面,也将就Matlab软件的作图功能作一个简单介绍.大家将会看到,Matlab 的作图功能非常强大.二、相关函数(命令)及简介1.平面作图函数:plot,其基本调用形式:plot(x,y,s)以x作为横坐标,y作为纵坐标.s是图形显示属性的设置选项.例如:x=-pi:pi/10:pi;y=sin(x);plot(x,y,'--rh','linewidth',2,'markeredgecolor','b','markerfacecolor','g')图1在使用函数plot时,应当注意到当两个输入量同为向量时,向量x与y必须维数相同,而且必须同是行向量或者同是列向量.绘图时,可以制定标记的颜色和大小,也可以用图形属性制定其他线条特征,这些属性包括:linewidth 指定线条的粗细.markeredgecolor 指定标记的边缘色markerfacecolor 指定标记表面的颜色.markersize 指定标记的大小.若在一个坐标系中画几个函数,则plot的调用格式如下:plot(x1,y1,s1,x2,y2,s2,……)2.空间曲线作图函数:plot3,它与plot相比,只是多了一个维数而已.其调用格式如下:plot3(x,y,z,s).例如:x=0:pi/30:20*pi;y=sin(x);z=cos(x);plot3(x,y,z)得到三维螺旋线:图23.空间曲面作图函数:(1)mesh函数.绘制彩色网格面图形.调用格式:mesh(z),mesh(x,y,z)和mesh(x,y,z,c).其中,mesh(x,y,z,c)画出颜色由c指定的三维网格图.若x、y均为向量,则length(x)=n,length(y)=m,[m,n]=size(z).(2)surf在矩形区域内显示三维带阴影曲面图.调用格式与mesh类似.(3)ezmesh用符号函数作三维曲面网格图.调用格式:ezmesh(x,y,z)其中x = x(s,t), y = y(s,t),z = z(s,t).画图区域默认为:-2*pi < s < 2*pi 且-2*pi < t < 2*pi.或者用格式:ezmesh(x,y,z,[smin,smax,tmin,tmax])(4)ezsurf用符号函数作三维曲面图.调用格式与ezmesh类似.(5)sphere画球体命令.4.meshgrid,调用格式:[x,y]=meshgrid(m,n),这里的m,n为给定的向量,可以定义网格划分区域和划分方法.矩阵x和矩阵y是网格划分后的数据矩阵.5.图像的修饰与其他函数:(1)axis equal 控制各个坐标轴的分度,使其相等;(2)colormap设置绘图颜色.调用格式:colormap([r g b])其中r,g,b都是0-1之间的数.或者用格式:colormap(s)s(3(4)find找出符合条件的元素在数组中的位置.调用格式:y=find(条件)例如:输入:a=[4 5 78 121 4 665 225 4 1];b=find(a>7)输出:b =3 4 6 7三、实验内容数学分析中,特别是积分部分,我们接触了不少有趣的函数,由于其中有的不是一一对应的,用上面的方法无法画出它们的图像,这时就只能用参数了.此外还有些图形只能用参数来画,比如空间曲线,在计算机上不接受“两个曲面的交线”这种表示,所以也只能用参数来实现.用参数方式作图的关键在于找出合适的参数表示,尤其是不能有奇点,最好也不要用到开方.所以要找的参数最好是有几何意义的.当然这也不可一概而论,需要多积累经验.1.利用函数plot在一个坐标系中画以下几个函数图像,要求采用不同颜色、不同线形、不同的符号标记.函数为:sin(),cos(),sin(2),(0,2)===∈.x t y t z t tπ程序如下:t=0:pi/20:2*pi;x=sin(t);y=cos(t);z=sin(2*t);plot(t, x, '--k*', t, y, '-rs', t, z, ':bo')图像如下:图32.绘制类似田螺线的一条三维螺线(方程自己设计).程序如下:t=0:.1:30;x=2*(cos(t)+t.*sin(t));y=2*(sin(t)-t.*cos(t));z=1.5*t;plot3(x,y,-z) %取–z 主要是为了画图看起来更清楚axis equal图像如下:图43.利用函数2222sin x y zx y+ =+程序如下:[a,b]=meshgrid(-8:.5:8); %先生成一个网格c=sqrt(a.^2+b.^2)+eps;z=sin(c)./c;mesh(a,b,z)axis square图像如下:图5思考:这里的 eps 是什么?其作用是什么?4.利用surf 绘制马鞍面图形(函数为:2294x y z =-). 程序如下:[x,y]=meshgrid(-25:1:25,-25:1:25); z=x.^2/9-y.^2/4; surf(x,y,z) title('马鞍面') grid off图像如下:图65.分别用ezmesh 和ezsurf 各绘制一个圆环面,尝试将两个圆环面放在一个图形界面内,观察它们有什么不同之处.提示:圆环面的方程为: 2 ,6 ,)(22222===+-+r R r z R y x ,而圆环面的参数方程为:]2,0[ ],2,0[ ,sin sin )cos (cos )cos (ππ∈∈⎪⎩⎪⎨⎧=+=+=v u u r z v u r R y v u r R x 程序参见附录1. 图像如下:图76.绘制黎曼函数图形,加深对黎曼函数的理解.说明:黎曼函数的定义为1(0,1) 01[01]p p p q x qq q y x x ⎧=∈⎪=⎨⎪=∈⎩,当、为正整数,为既约分数,0,当,及无理点,, 程序参见附录2.图像如下:图8四、自己动手1.做出下图所示的三维图形:图9ezsurf('3*sin(u)*cos(v)','3*sin(u)*sin(v)','3*cos(u)',[0,pi,0,2*pi]);axis equalhold onezsurf('(8+2*cos(u))*cos(v)','(8+2*cos(u))*sin(v)','2*sin(u)',[0,2*pi,0,2*pi]) 2.作出下图所示的墨西哥帽子及其剪裁图形:图10[a,b]=meshgrid(-8:.5:8); c=sqrt(a.^2+b.^2)+eps; z=sin(c)./c; mesh(a,b,z) axis square改变a 、b 的取值范围,可得到裁剪后的图。

实验1_函数的图形

实验1_函数的图形

实验1曲线绘图实验目的•学习Matlab绘图命令;•进一步理解函数概念。

1.曲线图Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给Matlab函数画图.命令为:PLOT(X,Y,’S’)线型X,Y是向量,分别表示点集的横坐标和纵坐标PLOT(X,Y)--画实线PLOT(X,Y1,’S1’,X,Y2,’S2’,……,X,Yn,’Sn’)--将多条线画在一起例1在[0,2*pi]用红线画sin(x),用绿圈画cos(x). x=linspace(0,2*pi,30);解:y=sin(x);z=cos(x);plot(x,y,'r',x,z,‘g o')G 绿色o 圈表1 基本线型和颜色符号颜色符号线型y黄色.点m紫红0圆圈c青色x x标记r红色+加号g绿色*星号b兰色-实线w白色:点线k黑色-.点划线--虚线2.符号函数(显函数、隐函数和参数方程)画图(1) ezplotezplot(‘f(x)’,[a,b])表示在a<x<b绘制显函数f=f(x)的函数图ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])表示在区间xmin<x<xmax和ymin<y<ymax绘制隐函数f(x,y)=0的函数图ezplot(‘x(t)’,’y(t)’,[tmin,tmax])表示在区间tmin<t<tmax绘制参数方程x=x(t),y=y(t)的函数图例2 在[0,pi]上画y=cos(x)的图形解输入命令ezplot('cos(x)',[0,pi])解输入命令ezplot('cos(t)^3','sin(t)^3',[0,2*pi])例4 在[-2,0.5],[0,2]上画隐函数0)sin(=+xy e x的图 解输入命令ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])例3 在[0,2*pi]上画t x 3cos =,t y 3sin =星形图如何利用ezplot画出颜色图(2) fplotfplot(‘fun’,lims)表示绘制字符串fun指定的函数在lims=[xmin,xmax]的图形.注意:[1] fun必须是M文件的函数名或是独立变量为x的字符串.[2] fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。

图形图像处理的教学设计案

图形图像处理的教学设计案

图形图像处理的教学设计案。

摘要本文旨在设计一套适用于图形图像处理课程的教学案,该教学案主要包括教学目的、教学大纲、教学方法、教学评估与考核等内容。

设计此教学案的目的是为了使学生能够学会图形图像处理的基础知识和实际应用能力,为日后的工作和研究提供基础。

通过本课程的学习,学生将能够掌握常用的图像处理方法,并能够在实际工作和项目中应用所学的知识。

关键词:图形图像处理、教学设计、教学方法、教学评估、教学考核一、教学目的图形图像处理是一门十分有趣和实用的课程,它为学生提供了理解图像与视频的方法和技术。

本课程的主要目的是让学生了解和掌握常用的图像处理方法和技术,为他们的日后的工作和研究提供基础。

同时,本课程通过实际案例的讲解和分析,使学生能够更好地理解和应用所学的知识,并且能够在实际工作和项目中发挥其应用效果。

二、教学大纲1.图像基本处理技术a.图像获取,数字化和预处理b.图像增强和恢复c.图像滤波和去噪d.图像分割和识别2. 图像高级处理技术a.图像融合和重构b.形态学处理和边缘检测c.基于机器学习的图像分类和识别d.基于深度学习的图像处理技术3. 应用案例分析a.实际应用案例的讲解b.应用案例的分析和评估c.实验案例的设计和实验操作三、教学方法1.理论授课: 老师通过PPT进行理论授课,解释图像处理方法的原理和技术点。

2.实验操作: 学生通过实验班进行图像处理和实际案例分析操作,深化理解课程内容。

3.课堂讨论: 教师和学生共同进行课堂讨论,相互探讨课程内容和案例分析。

4.课外学习: 学生通过阅读相关专业书籍、论文和案例分析,进一步巩固和加深所学内容。

四、教学评估与考核本课程的教学评估和考核主要通过如下方式进行:1.作业评估: 要求学生完成课堂练习和课后作业,老师将通过课堂考勤、作业表现等考核学生的实际操作能力和掌握程度。

2.期末考核: 考试内容主要是理论知识和实验操作的报告撰写,以及实验成果的演示和总结报告。

计算机图形学实验报告

计算机图形学实验报告

计算机图形学实验报告
实验目的:通过本次实验,深入了解并掌握计算机图形学的基本原理和相关技术,培养对图形处理的理解和能力。

实验内容:
1. 图像的基本属性
- 图像的本质及表示方法
- 像素和分辨率的概念
- 灰度图像和彩色图像的区别
2. 图像的处理技术
- 图像的采集和处理
- 图像的变换和增强
- 图像的压缩和存储
3. 计算机图形学的应用
- 图像处理在生活中的应用
- 计算机辅助设计中的图形学应用
- 三维建模和渲染技术
实验步骤和结果:
1. 在计算机图形学实验平台上加载一张测试图像,分析其像素构成
和基本属性。

2. 运用图像处理技术,对测试图像进行模糊、锐化、色彩调整等操作,观察处理后的效果并记录。

3. 学习并掌握计算机图形学中常用的处理算法,如卷积、滤波等,
尝试应用到测试图像上并进行实验验证。

4. 探讨计算机图形学在数字媒体制作、虚拟现实、计算机辅助设计
等领域的应用案例,并总结其在实践中的重要性和价值。

结论:
通过本次实验,我对计算机图形学有了更深入的了解,掌握了图像
处理技术的基本原理和应用方法。

计算机图形学作为一门重要的学科,对多个领域有着广泛的应用前景,有助于提高数字媒体技术、虚拟现
实技术等领域的发展水平。

希望在未来的学习和工作中能进一步深化
对计算机图形学理论和实践的研究,不断提升自己在这一领域的专业
能力和创新意识。

图形学实验报告

图形学实验报告

图形学实验报告图形学实验报告概述:在本次图形学实验中,我们将探索和学习计算机图形学的基本概念和技术。

通过实验,我们深入了解了图形学的原理和应用,以及如何使用计算机生成和处理图像。

实验一:像素和颜色在这个实验中,我们学习了图像是由像素组成的,每个像素都有自己的颜色值。

我们使用了Python编程语言和PIL库来创建一个简单的图像,并设置了不同的像素颜色。

通过改变像素的颜色值,我们可以创建出各种各样的图像效果。

实验二:坐标系统和变换在这个实验中,我们学习了坐标系统和图形变换。

我们使用OpenGL库来创建一个简单的二维图形,并通过平移、旋转和缩放等变换操作来改变图形的位置和形状。

这些变换操作使我们能够在屏幕上创建出各种不同的图案和效果。

实验三:线段和多边形在这个实验中,我们学习了如何使用线段和多边形来绘制图形。

我们使用了Bresenham算法来绘制直线,并学习了如何使用多边形填充算法来填充图形。

通过这些技术,我们可以创建出更加复杂和精细的图像。

实验四:光照和阴影在这个实验中,我们学习了光照和阴影的原理和应用。

我们使用了光照模型来模拟光线的传播和反射,以及计算物体的明暗效果。

通过调整光照参数和材质属性,我们可以创建出逼真的光照和阴影效果。

实验五:纹理映射和渲染在这个实验中,我们学习了纹理映射和渲染的概念和技术。

我们使用了纹理映射来将图像贴到三维物体表面,以增加物体的细节和真实感。

通过渲染技术,我们可以模拟光线的折射和反射,以及创建出逼真的材质效果。

实验六:三维建模和动画在这个实验中,我们学习了三维建模和动画的基本原理和方法。

我们使用了三维建模工具来创建三维模型,并学习了如何使用关键帧动画来实现物体的运动和变形。

通过这些技术,我们可以创建出逼真的三维场景和动画效果。

总结:通过这次图形学实验,我们深入了解了计算机图形学的原理和应用。

我们学习了像素和颜色、坐标系统和变换、线段和多边形、光照和阴影、纹理映射和渲染,以及三维建模和动画等技术。

数字图形处理 实验 图像的平滑与锐化

数字图形处理 实验 图像的平滑与锐化

XXXXXXXX 大学(数字图形处理)实验报告 实验名称 图像的平滑与锐化 实验时间 年 月 日专 业 姓 名 学 号 预 习 操 作 座 位 号 教师签名 总 评一、实验目的:1.了解图像平滑的邻域平均和中值滤波以及锐化的梯度法和Sobel 法的基本思想;2.掌握图像平滑的邻域平均和中值滤波以及锐化的梯度法和Sobel 法的基本步骤;二、实验原理:1. 邻域平均法的思想是用像素及其指定邻域内像素的平均值或加权平均值作为该像素的新值,以便去除突变的像素点,从而滤除一定的噪声。

邻域平均法的数学含义可用下式表示:∑∑==⎪⎭⎫ ⎝⎛=mn i imn i i i w z w y x g 11),( (1) 上式中:i z 是以),(y x 为中心的邻域像素值;i w 是对每个邻域像素的加权系数或模板系数; m n 是加权系数的个数或称为模板大小。

邻域平均法中常用的模板是:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡*=11111111191Box T (2) 为了解决邻域平均法造成的图像模糊问题,采用阈值法(又叫做超限邻域平均法,如果某个像素的灰度值大于其邻域像素的平均值,且达到一定水平,则判断该像素为噪声,继而用邻域像素的均值取代这一像素值;否则,认为该像素不是噪声点,不予取代),给定阈值0T :⎩⎨⎧≥-<-=00),(),(),(),(),(),(),(T y x g y x f y x g T y x g y x f y x f y x h (3) (3)式中,),(y x f 是原始含噪声图像,),(y x g 是由(1)式计算的平均值,),(y x h 滤波后的像素值。

2.中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。

方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。

关于图形图像处理实训报告总结【九篇】

关于图形图像处理实训报告总结【九篇】

关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。

通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。

下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。

通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。

2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。

我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。

3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。

通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。

4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。

通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。

5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。

通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。

6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。

通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。

7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。

通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。

8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

甘肃政法学院本科生实验报告(一)姓名: xxx学院:计算机科学学院专业:计算机科学与技术班级: 计本班实验课程名称:图形图像处理与应用实验日期:2012年3月28日指导教师及职称:实验成绩:开课时间:2011-2012学年第二学期甘肃政法学院实验管理中心印制实验题目Matlab语言及数字图像处理基本操作小组合作否姓名班级10计本班学号一、实验目的1、学习MATLAB语言的基本用法;2、掌握MATLAB语言中图像数据与信息的读取方法;3、掌握在MATLAB中绘制灰度直方图的方法;4、掌握灰度直方图的均衡化的方法;5、利用基本灰度变换对图像进行增强二.实验环境Windws XP、MA TALAB7.0三、实验内容与步骤1、验证MATLAB中图像数据的读写及显示(1)imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’) 其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。

(2)imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

(3)imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

(4)MATLAB中图像文件的显示imshowimshow函数是最常用的显示各种图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。

需要显示多幅图像时,可以使用figure语句,它的功能就是重新打开一个图像显示窗口。

2、验证图像对比度增强函数Imadjust如果原图像f(x,y)的灰度范围是[m,M],我们希望调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换,,就可以实现这一要求。

MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。

Imadjust函数的语法格式为:J = imadjust(I,[low_in high_in],[low_out high_out])J = imadjust(I,[low_in high_in],[low_out high_out])返回图像I经过直方图调整后的图像J,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围。

3、验证MATLAB中灰度直方图的显示MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:imhist(I,n)imhist(X,map)其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。

imhist(X,map)计算和显示索引色图像X的直方图,map为调色板。

4、验证直方图均衡化MATLAB图像处理工具箱提供了histeq函数来均衡化直方图,histeq函数的语法格式为:J=histeq(I,n)newmap=histeq(X,map)其中imhist(I,n)是对灰度图像I的直方图均衡化,n为指定的灰度级数目,默认值为256。

histeq(X,map)是对索引图像而言。

5、利用基本灰度变换对图像进行增强灰度变换原理:灰度变换是一种空域处理方法,其本质是按一定的规则修改每个像素的灰度,从而改变图像的动态范围实现期望的增强效果。

灰度变换按映射函数可分为线性、分段线性和非线性等多种形式。

(1)线性灰度变换线性灰度变换是将输入图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。

可突出感兴趣目标,抑制不感兴趣的目标。

在实际运算中,原图像f(x,y)的灰度范围为[a,b],使变换后图像g(x,y)的灰度扩展为[c,d],则采用下述线性变换来实现:c a y x f a b cd y x g +---=]),([),(线性灰度变换对图像每个灰度范围作线性拉伸,将有效地改善图像视觉效果。

(2)分段线性灰度变换为了突出图像中感兴趣的研究对象,常常要求局部拉伸某一范围的灰度值,或对不同范围的灰度值进行不同拉伸处理,即分段线性拉伸,数学表达式如下:⎪⎪⎪⎩⎪⎪⎪⎨⎧≤<+---≤<+---≤≤=MfyxfbdbyxfbMfdMgbyxfacayxfabcdayxfyxfacyxg),(]),([),(]),([),(),(),((3)非线性灰度变换非线性灰度变换在整个灰度范围内采用统一的变换函数,利用变换函数的数学性质实现对不同灰度值区间的扩展和压缩。

1、对数扩展。

对数变换常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰度的图像细节更容易看清,从而达到增强的效果。

还可使图像灰度分布与人视觉特性相匹配。

其具体形式为:]1),(ln[),(+=yxfcyxg式中:[f(x,y)+1]是为了避免对零求对数;C为尺度比例系数,用于调节动态范围。

四、实验过程与分析复制三个图像文件1.jpg、2.jpg和3.l.jpg到MATLAB目录下work 文件夹中。

1、将MATLAB目录下work文件夹中的1.jpg图像文件读出,用到imread,imfinfo等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。

将这个图像显示出来(用imshow)。

2、将MATLAB目录下work文件夹中的2.jpg图像文件读出,显示它的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。

3、将MATLAB目录下work文件夹中的2.jpg图像文件读出,显示它的图像及灰度直方图,用histeq函数均衡化直方图并将其图像和灰度直方图显示出来,并观察调整后的图像与原图像的差别。

4、利用基本灰度变换原理,编写程序对3.jpg图像进行增强附:利用基本灰度变换对图像进行增强灰度变换原理:灰度变换是一种空域处理方法,其本质是按一定的规则修改每个像素的灰度,从而改变图像的动态范围实现期望的增强效果。

灰度变换按映射函数可分为线性、分段线性和非线性等多种形式。

1 线性灰度变换线性灰度变换是将输入图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。

可突出感兴趣目标,抑制不感兴趣的目标。

在实际运算中,原图像f(x,y)的灰度范围为[a,b],使变换后图像g(x,y)的灰度扩展为[c,d],则采用下述线性变换来实现:c a y x f ab c d y x g +---=]),([),( 线性灰度变换对图像每个灰度范围作线性拉伸,将有效地改善图像视觉效果。

源代码如下:1、利用灰度调整函数变换图像A=imread('f:\1.jpg','jpg'); %读入图像B=imadjust(A,[0.1,0.8],[0,1]); %灰度调整imwrite(B,'F:\ 11.jpg'); %图像保存subplot(2,2,1);imshow(A); %显示调整前后图像及其直方图 subplot(2,2,2);imhist(A);subplot(2,2,3);imshow(B);subplot(2,2,4);imhist(B);2、利用灰度调整算法变换图像clear;a=60; %图像变换参数设定b=180;c=0;d=255;A=imread('2.jpg','jpg'); %读入图像[m,n]=size(A);A=double(A);for i=1:1:m %灰度调整for j=1:1:nif (A(i,j)>=a)&(A(i,j)<b)B(i,j)=(A(i,j)-a)*(d-c)/(b-a)+c;endendenduint8(A); uint8(B);imwrite(B,'F:\22.jpg'); %图像保存subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图subplot(2,2,2); imhist(A);subplot(2,2,3); imshow(B);subplot(2,2,4); imhist(B);2 分段线性灰度变换为了突出图像中感兴趣的研究对象,常常要求局部拉伸某一范围的灰度值,或对不同范围的灰度值进行不同拉伸处理,即分段线性拉伸,数学表达式如下:⎪⎪⎪⎩⎪⎪⎪⎨⎧≤<+---≤<+---≤≤=MfyxfbdbyxfbMfdMgbyxfacayxfabcdayxfyxfacyxg),(]),([),(]),([),(),(),(源代码如下:clear;a=80; %图像变换参数设定b=160;Mf=255;c=50;d=200;Mg=255;A=imread('3.jpg','jpg'); %读入图像[m,n]=size(A);A=double(A);for i=1:1:m %灰度调整for j=1:1:nif A(i,j)<aB(i,j)=(c/a)*A(i,j);elseif (A(i,j)>=a)&(A(i,j)<b)B(i,j)=(A(i,j)-a)*(d-c)/(b-a)+c;elseB(i,j)=(A(i,j)-b)*(Mg-d)/(Mf-b)+d;endendenduint8(A); uint8(B);imwrite(B,'F:\33.tif'); %图像保存subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图subplot(2,2,2); imhist(A);subplot(2,2,3); imshow(B);subplot(2,2,4); imhist(B);五、实验总结基本掌握了MATLAB语言的基本用法,MATLAB语言中图像数据与信息的读取方法,在器重绘制灰度直方图的方法,基本掌握了灰度直方图均衡化的方法,利用基本灰度变化对图像进行增强。

相关文档
最新文档