第三次实验报告数字图像处理实验 —图像的几何变换

合集下载

数字图像处理实习报告

数字图像处理实习报告

数字图像处理实习报告在当今数字化的时代,数字图像处理技术在众多领域中发挥着至关重要的作用,从医疗诊断到卫星遥感,从娱乐产业到工业检测,其应用无处不在。

通过这次数字图像处理实习,我对这一领域有了更深入的了解和实践经验。

实习的初始阶段,我主要进行了相关理论知识的学习。

数字图像处理涵盖了众多概念,如图像的数字化表示、像素、灰度值、分辨率等。

了解这些基础知识是后续处理图像的基石。

同时,我还学习了常见的图像格式,如 JPEG、PNG、BMP 等,以及它们的特点和适用场景。

在掌握了一定的理论基础后,我开始接触图像处理的基本操作。

图像增强是我最先实践的部分,通过调整图像的对比度和亮度,能够使原本模糊不清或暗淡的图像变得更加清晰和易于观察。

例如,对于一张曝光不足的照片,增加亮度可以让隐藏在黑暗中的细节显现出来;而提高对比度则可以使图像中的不同区域更加分明,突出重点。

图像滤波是另一个重要的环节。

均值滤波可以有效地去除图像中的噪声,但在一定程度上会使图像变得模糊;中值滤波则能够在去除噪声的同时较好地保留图像的边缘细节。

我通过对不同类型和程度的噪声图像进行滤波处理,直观地感受到了它们的效果差异。

图像的几何变换也是实习中的关键内容。

图像的平移、旋转和缩放操作看似简单,但其背后涉及到复杂的数学计算。

在实际操作中,需要准确地计算变换矩阵,以确保图像在变换后的准确性和完整性。

实习过程中,我还深入研究了图像分割技术。

这是将图像分成不同区域或对象的过程,以便进行后续的分析和处理。

阈值分割是一种常见且简单的方法,通过设定一个阈值,将图像中的像素分为两类。

然而,对于复杂的图像,这种方法往往效果不佳,这时就需要更高级的分割算法,如基于边缘检测的分割或基于区域生长的分割。

在进行数字图像处理的过程中,我也遇到了一些挑战和问题。

例如,在处理大规模图像数据时,计算资源的限制可能导致处理速度缓慢;在选择图像处理算法时,需要根据具体的图像特点和需求进行权衡,否则可能无法达到理想的效果。

第三次实验报告数字图像处理实验 —图像的几何变换

第三次实验报告数字图像处理实验 —图像的几何变换

数字图像处理实验—图像得几何变换姓名:张慧班级:信息10-1学号:36号实验三、图像得几何变换一、实验目得1.学习几种常见得图像几何变换,并通过实验体会几何变换得效果;2.掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换得算法原理及编程实现3.掌握matlab编程环境中基本得图像处理函数4.掌握图像得复合变换二、实验原理1初始坐标为(, )得点经过平移(,),坐标变为(,),两点之间得关系为:,以矩阵形式表示为:2 图像得镜像变换就是以图象垂直中轴线或水平中轴线交换图像得变换,分为垂直镜像变换与水平镜像变换,两者得矩阵形式分别为:3图像缩小与放大变换矩阵相同:当时,图像缩小;时,图像放大。

4 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。

其变换矩阵为:该变换矩阵就是绕坐标轴原点进行得,如果就是绕一个指定点()旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新得坐标原点。

三、实验步骤1启动MATLAB程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放与旋转操作,与实验箱运行结果进行比对;2记录与整理实验报告四、实验程序X=imread(’E:\test、jpg’);figure,imshow(X);title('原图')%缩放A=[0、5 00;0 2 0;0 0 1];T=maketform(’affine’,A);Z=imtransform(X,T);figure,imshow(Z),title('图像缩放');%图像旋转A=[cos(pi/4)sin(pi/4)0;-sin(pi/4)cos(pi/4)0;0 01]; T=maketform(’affine’,A);Z=imtransform(X,T);figure,imshow(Z);title('图像旋转');%水平剪切A=[10 0;0、5 1 0;0 0 1];T=maketform('affine’,A);Z=imtransform(X,T);figure,imshow(Z);title('水平剪切');%垂直剪切A=[10、50;0 1 0;0 0 1];T=maketform('affine’,A);Z=imtransform(X,T);figure,imshow(Z);title(’垂直剪切’);%水平镜像A=[-10 0;0 1 0;10 1];T=maketform('affine’,A);Z=imtransform(X,T);figure,imshow(Z);title('水平镜像');%垂直镜像A=[1 00;0 —1 0;0 11];T=maketform('affine',A);Z=imtransform(X,T);figure,imshow(Z);title('垂直镜像');五、实验结果图原图图像缩放图像旋转水平剪切垂直剪切水平镜像垂直镜像六、结果分析1.图像得平移。

图像变换实验报告

图像变换实验报告
一般的旋转是以图像的中心为原点,将图像上的所有像素都 旋转一个相同的角度。
在 MATLAB 中,进行图像旋转的函数是 imrotate,它的常见 调用方法如下:
B=imrotate(A,angle)
B= imrotate(A,angle,method)
B= imrotate(A,angle,method,bbox)
通过离散余弦变换可以看到图像的重要可是信息都集中在 DCT 变换的左上角一小部分系数中,其余大部分接近零,将幅值 小于 10 的 DCT 系数置为零后进行反 DCT 得到的压缩的图像,比 较变换前后的图像,可以发现视觉效果相差很小,压缩的效果比 较理想。 (三)选做实验:频域滤波
因为 Butterworth 低通滤波器在带通和带阻之间有平滑的过 渡带,高频信号没有完全滤除,在抑噪效果良好的同时,图像变 得更加模糊了。
其中,A 是要进行缩放的图像矩阵,scale 是进行缩放的倍数, 如果 scale 小于 1,则进行缩小操作,如果 scale 大于 1,则进 行放大操作。[mrows ncols]用于指定缩放后图像的行数和列数, method 用于指定的图像插值方法,有 nearest、bilinear、bicubic 等算法。 2、图像旋转
cos
2������
2������
������ = 0������ = 0
其中,f(x,y)是二维空间向量元素,F(u,v)是变换系数矩阵之元 素。
在 MATLAB 中,提供两种进行图像处理的 DCT 变换函数: B=dct2(A)
B=dct2(A,[m,n]) B=dct2(A,[m n]) 其中,A 是输入的图像,B 是返回的 DCT 的变换系数,m、n 分别 是返回的 DCT 变换系数 B 的行数和列数。

实验报告几何变换实验

实验报告几何变换实验

实验报告几何变换实验实验报告:几何变换实验引言:几何变换是计算机图形学中的重要概念,它可以改变图像的形状、位置和大小。

在本次实验中,我们将通过对几何变换的实际操作,深入了解几何变换的原理和应用。

一、实验目的本次实验的主要目的是探究几何变换在图像处理中的应用,具体包括平移、旋转、缩放和翻转等几何变换操作。

通过实际操作和观察,我们将了解几何变换对图像的影响,并学习如何使用计算机编程实现这些变换。

二、实验材料和方法1. 实验材料:- 一台计算机- 图像处理软件(如Photoshop、GIMP等)- 编程软件(如Python、MATLAB等)2. 实验方法:- 步骤一:选择一张图片作为实验对象,并导入到图像处理软件中。

- 步骤二:使用图像处理软件进行平移操作,观察图像的位置变化。

- 步骤三:使用图像处理软件进行旋转操作,观察图像的旋转效果。

- 步骤四:使用图像处理软件进行缩放操作,观察图像的大小变化。

- 步骤五:使用图像处理软件进行翻转操作,观察图像的翻转效果。

- 步骤六:使用编程软件编写程序,实现上述几何变换操作,并观察结果。

三、实验结果与分析1. 平移操作:在实验中,我们发现通过平移操作,可以将图像在水平和垂直方向上进行移动。

通过调整平移的距离和方向,我们可以改变图像在画布上的位置。

这种操作常用于图像的对齐和拼接等应用中。

2. 旋转操作:旋转操作可以改变图像的角度和方向。

通过调整旋转的角度和中心点,我们可以使图像以不同的角度进行旋转。

这种操作常用于图像的矫正、仿射变换等应用中。

3. 缩放操作:缩放操作可以改变图像的大小。

通过调整缩放的比例,我们可以使图像变得更大或更小。

这种操作常用于图像的放大、缩小、裁剪等应用中。

4. 翻转操作:翻转操作可以改变图像的方向。

通过水平或垂直翻转,我们可以使图像在左右或上下方向发生镜像反转。

这种操作常用于图像的镜像处理、对称效果等应用中。

四、实验总结通过本次实验,我们深入了解了几何变换在图像处理中的应用。

数字图像处理图像变换实验报告

数字图像处理图像变换实验报告

实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用与意义;4、观察图像点运算与几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。

三、实验原理1、图像灰度直方图、点运算与几何变换的基本原理及编程实现步骤图像灰度直方图就是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。

图像点运算就是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。

点运算可以瞧作就是“从象素到象素”的复制操作,而这种复制操作就是通过灰度变换函数实现的。

如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值与输出灰度值之间的转换关系。

一旦灰度变换函数确定,该点运算就完全确定下来了。

另外,点运算处理将改变图像的灰度直方图分布。

点运算又被称为对比度增强、对比度拉伸或灰度变换。

点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。

图像几何变换就是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放与图像旋转等,其理论基础主要就是一些矩阵运算,详细原理可以参考有关书籍。

实验系统提供了图像灰度直方图、点运算与几何变换相关内容的文字说明,用户在操作过程中可以参考。

下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。

《数字图像处理》上机实验报告1

《数字图像处理》上机实验报告1

数字图像处理上机实验报告实验名称:图像的几何变换(象素空间关系)学期:2014/2015上学期班级:电子信息工程1102姓名:陈玮学号:3110209424实验时间:2014.09.29实验一:图像的几何变换(象素空间关系)1 目的①了解MATLAB的基本功能,掌握采用MA TLAB进行图像处理的方法;②了解图像象素空间关系;③掌握基本坐标变换,包括平移,缩放,旋转等;④了解形态变换,掌握特殊的形态变换,包括相似变换,刚体变换,等距变换等2 器材装有MATLAB的PC机一台3 原理双线性内差值法:1.数学原理已知的红色数据点与待插值得到的绿色点假如我们想得到未知函数f在点P= (x,y) 的值,假设我们已知函数f在Q11 = (x1,y1)、Q12 = (x1,y2),Q21 = (x2,y1) 以及Q22 = (x2,y2) 四个点的值。

首先在x方向进行线性插值,得到R1和R2,然后在y方向进行线性插值,得到P.这样就得到所要的结果f(x,y).其中红色点Q11,Q12,Q21,Q22为已知的4个像素点.第一步:X方向的线性插值,插入蓝色第二步:做完X方向的插值后再做Y方向的点R1和R2. 插值,由R1与R2计算P点.x方向上Y方向上插入绿色点P.线性插值的结果与插值的顺序无关。

首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。

但双线性插值插值方法这种方法并不是线性的,首先进行y方向的插值,然后进行x 方向的插值,与首先进行x方向的插值,然后进行y方向的插值,所得到的R1与R2是不一样的。

如果选择一个坐标系统使得的四个已知点坐标分别为(0, 0)、(0, 1)、(1, 0) 和(1, 1),那么插值公式就可以化简为f(x,y)=f(0,0)(1-x)(1-y)+f(0,1)(1-x)y+f(1,1)xy+f(1,0)x(1-y)在x与y方向上,z值成单调性特性的应用中,此种方法可以做外插运算,即可以求解Q1~Q4所构成的正方形以外的点的值。

数字图像处理实验报告-线性灰度变换-图像几何变换-频域图像增强技术-图像分割

数字图像处理实验报告-线性灰度变换-图像几何变换-频域图像增强技术-图像分割

线性灰度变换一、实验目的1结合实例学习如何在视频显示程序中增加图像处理算法;2理解和掌握图像的线性变换和直方图均衡化的原理和应用;3了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;4 了解噪声模型及对图像添加噪声的基本方法。

二、实验原理1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。

)],([),(y x f T y x g =⎪⎩⎪⎨⎧<≤+-<≤+-≤≤=255),(]),([),( ]),([),(0 ),(),(y x f b g b y x f b y x f a g a y x f a y x f y x f y x g b a γβαn y m x ,2,1 ,,,2,1==2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。

按照图像概率密度函数PDF 的定义:1,...,2,1,0 )(-==L k nn r p k k r 通过转换公式获得:1,...,2,1,0 )()(00-====∑∑==L k n n r p r T s k j k j j j r k k3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。

将模板中的全体像素的均值(中值)来代替原来像素值的方法。

4 拉普拉斯算子如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------111181111 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。

三、实验步骤1 启动MATLAB 程序,对图像文件分别进行灰度线性变换(参考教材57页,例4.1)、直方图均衡化(参考教材64页,例4.6)、均值滤波(参考教材69页,例4.9)、中值滤波(参考教材73页,例4.11)和梯度锐化操作(参考教材76页,例4.12)。

添加噪声,重复上述过程观察处理结果。

数字图像处理---图像的几何变换

数字图像处理---图像的几何变换

数字图像处理---图像的⼏何变换图像的⼏何变换图像的⼏何变换包括了图像的形状变换和图像的位置变换图像的形状变换图像的形状变换是指图像的放⼤、缩⼩与错切图像缩⼩图像的缩⼩是对原有的数据进⾏挑选或处理,获得期望缩⼩尺⼨的数据,并尽量保持原有的特征不消失分为按⽐例缩⼩和不按⽐例缩⼩两种最简单的⽅法是等间隔地选取数据图像缩⼩实现设原图像⼤⼩为M ∗N ,缩⼩为K 1M ∗K 2N (K 1<1,K 2<1)1. 设原图为F (i ,j ),i =1,2,...,M ,j =1,2,...,N ;压缩后地图像为G (x ,y ),x =1,2,...,k 1M ,y =1,2,...,k 2N2. G (x ,y )=F (c 1∗i ,c 2∗j );其中,c 1=1/k 1,c 2=1/k 2图像放⼤图像放⼤时对多出的空位填⼊适当的值,是信息的估计最简单的思想是将原图像中的每个像素放⼤为k ∗k 的⼦块图像放⼤实现设原图像⼤⼩为M ∗N ,缩⼩为K 1M ∗K 2N (K 1>1,K 2>1)1. 设原图为F (i ,j ),i =1,2,...,M ,j =1,2,...,N ;压缩后地图像为G (x ,y ),x =1,2,...,k 1M ,y =1,2,...,k 2N2. G (x ,y )=F (c 1∗i ,c 2∗j );其中,c 1=1/k 1,c 2=1/k 2图像错切图像错切变换实际上是平⾯景物在投影平⾯上的⾮垂直投影效果图像错切的数学模型x ′=x +d x y y ′=y(x ⽅向的错切,dx =tan θ)x ′=x y ′=y +d y x(y ⽅向的错切,dy =tan θ)图像的位置变换图像的位置变换是指图像的平移、镜像与旋转,即图像的⼤⼩和形状不发⽣变化主要⽤于⽬标识别中的⽬标配准图像平移公式:{{x ′=x +Δx y ′=y +Δy图像镜像图像镜像分为⽔平镜像和垂直镜像,即左右颠倒和上下颠倒公式:图像⼤⼩为M*Nx ′=x y ′=−y (⽔平镜像)x ′=−x y ′=y(垂直镜像)由于不能为负,因此需要再进⾏⼀次平移x ′=x y ′=N +1−y (⽔平镜像)x ′=M +1−xy ′=y(垂直镜像)图像旋转公式:x ′=xcos θ−ysin θy ′=xsin θ+ycos θ由于计算结果值所在范围与原有值不同,因此需要在进⾏扩⼤画布、取整、平移等处理画布扩⼤原则:以最⼩的⾯积承载全部的画⾯信息⽅法:根据公式x ′=xcos θ−ysin θy ′=xsin θ+ycos θ计算x ′min ,x ′max ,y ′min ,y ′max旋转后可能导致像素之间相邻连接不再连续,因此需要通过增加分辨率的⽅式填充空洞插值最简单的⽅式就是⾏插值(列插值)⽅法1. 找出当前⾏的最⼩和最⼤的⾮背景点坐标,记作:(i,k1)、(i,k2)2. 在(k1,k2)范围内进⾏插值,插值⽅法为空点的像素值等于前⼀点的像素值3. 重复上述操作直⾄没有空洞图像的仿射变换图像的仿射变换即通过通⽤的仿射变换公式,表⽰⼏何变换{{{{{{{齐次坐标原坐标为(x,y),定义齐次坐标为(wx,wy,w)实质上是通过增加坐标量来解决问题仿射变换通式通过齐次坐标定义仿射变换通式为x ′=ax +by +Δx y ′=cx +dy +Δy⇒x ′y ′=a b Δx c dΔyx y⼏何变换表⽰1. 平移x ′y ′1=10Δx 01Δy 001x y12. 旋转x ′y ′1=cos θ−sin θ0sin θcos θ0001x y 13. ⽔平镜像x ′y ′1=−10001001x y14. 垂直镜像x ′y ′1=1000−10001x y15. 垂直错切x ′y ′1=1d x 00−10001x y16. ⽔平错切x ′y ′1=100d y −10001x y1图像的⼏何校正由于图像成像系统的问题,导致拍摄的图⽚存在⼀定的⼏何失真⼏何失真分为{[][][][][][][][][][][][][][][][][][][][][]1. 系统失真:有规律的、可预测的2. ⾮系统失真:随机的⼏何校正的基本⽅法是先建⽴⼏何校正的数学模型,其次利⽤已知条件确定模型参数,最后根据模型对图像进⾏⼏何校正步骤:1. 图像空间坐标的变换2. 确定校正空间各像素的灰度值(灰度内插)途径:1. 根据畸变原因,建⽴数学模型2. 参考点校正法,根据⾜够多的参考点推算全图变形函数空间坐标变换实际⼯作中利⽤⼀幅基准图像f(x,y),来校正失真图像g(x′,y′)根据⼀些控制点对,建⽴两幅图像之间的函数关系,通过坐标变换,以实现失真图像的⼏何校正两幅图像上的f(x,y)=g(x′,y′)时,称其为对应像素(同名像素)通过表达式x′=h1(x,y)y′=h2(x,y)表⽰两幅图像之间的函数关系通常⽤多项式x′=n∑i=0n−i∑j=0a ij x i y jy′=n∑i=0n−i∑j=0b ij x i y j来近似h1(x,y)、h2(x,y)当多项式系数n=1时,畸变关系为线性变换x′=a00+a10x+a01yy′=b00+b10x+b01y六个未知数需要⾄少三个已知点来建⽴⽅程式当多项式系数n=2时,畸变关系式为x′=a00+a10x+a01y+a20x2+a11xy+a02y2y′=b00+b10x+b01y+b20x2+b11xy+b02y2 12个未知数需要⾄少6个已知点来建⽴⽅程式当超过已知点数⽬超过要求时,通过最⼩⼆乘法求解n=2时多项式通式为B2∗n=H2∗6A6∗n(n为待求点数)B2∗n=x′1x′2⋯x′n y′1y′2⋯y′n{ []H 2∗6=a 00a 10a 01a 20a 11a 02b 00b 10b 01b 20b 11b 02A 6∗n =11⋯1x 1x 2⋯x n y 1y 2⋯y n x 21x 22⋯x 2n x 1y 1x 2y 2⋯x n y ny 21y 22⋯y 2n同名点对要求1. 数量多且分散2. 优先选择特征点直接法利⽤已知点坐标,根据x ′=h 1(x ,y )y ′=h 2(x ,y )⇒x =h ′1(x ′,y ′)y =h ′2(x ′,y ′)x =n ∑i =0n −i∑j =0a ′ij x ′i y′jy =n ∑i =0n −i∑j =0b ′ijx ′i y ′j解求未知参数;然后从畸变图像出发,根据上述关系依次计算每个像素的校正坐标,同时把像素灰度值赋予对应像素,⽣成校正图像由于像素分布的不规则,导致出现像素挤压、疏密不均等现象,因此最后还需要进⾏灰度内插,⽣成规则图像间接法间接法通过假定⽣成图像的⽹格交叉点,从⽹格交叉点(x,y)出发,借助已知点求取未知参数,根据x ′=n ∑i =0n −i∑j =0a ij x i y jy ′=n ∑i =0n −i∑j =0b ij x i y j推算⽹格交叉点(x,y)对应畸变图像坐标(x',y'),由于对应坐标⼀般不为整数,因此需要通过畸变图像坐标周围点的灰度值内插求解,作为⽹格交叉点(x,y)的灰度值间接法相对直接法内插较为简单,因此常采⽤间接法作为⼏何校正⽅法像素灰度内插最近邻元法最近邻元法即根据四邻域中最近的相邻像素灰度决定待定点灰度值该⽅法效果较佳,算法简单,但是校正后图像存在明显锯齿,即存在灰度不连续性双线性内插法[][]{{双线性内插法是利⽤待求点四个邻像素的灰度在两个⽅向上作线性内插该⽅法相较最近邻元法更复杂,计算量更⼤,但是没有灰度不连续的缺点,且具有低通滤波性质,图像轮廓较为模糊三次内插法三次内插法利⽤三次多项式S(x)来逼近理论最佳插值函数sin(x)/xS(x)=1−2|x|2+|x|30≤|x|<1 4−8|x|+5|x|2−|x|31≤|x|<20|x|≥2该算法计算量最⼤,但是内插效果最好,精度最⾼{Processing math: 100%。

MATLAB 图像处理实验报告

MATLAB 图像处理实验报告

实验报告课程名称数字图像处理实验名称图像的几何变换姓名__ 冯倩学号____201007120207_ 专业班级_ 数媒1002实验日期__2012_ 年_10 _月_18 日成绩_____ __ 指导教师___李湘娟_ 一、实验目的掌握图像平移、缩放、旋转与镜像变换;二、实验原理图像平移,自写平移函数immove.mfunction outImage=immove(inImage,Tx,Ty)[m, n] = size(inImage);%计算图象大小outImage = uint8(zeros(m+abs(Ty), n+abs(Tx)));if(Tx>0&&Ty>0) %往右下角平移的情况outImage(1+Ty:m+Ty,1+Tx:n+Tx) = inImage;else if(Tx<0&&Ty<0) %往左上角平移的情况outImage(1:m,1:n) = inImage;else if (Tx<0&&Ty>0) %往左下角平移的情况outImage(1+Ty:m+Ty,1:n) = inImage;else % 往右上角平移的情况outImage(1:m,1+Tx:n+Tx) = inImage;endendend主函数I=imread('C:\Documents and Settings\K46\桌面\1.jpg');J=rgb2gray(I);imshow(J);title('原图像');H=immove(J,100,-100);figure;imshow(H);title('平移后图像');B=immove(J,80,-50);figure;imshow(B);title('平移后图像');G=imresize(J,0.5);figure;imshow(G);title('缩放后图像');C=imresize(J,2);figure;imshow(C);title('缩放后图像');D=imrotate(J,30);figure;imshow(D);title('旋转后图像');E=imrotate(J,54);figure;imshow(E);title('旋转后图像');F = flipdim(J,1);figure;imshow(F);title('垂直镜像图像');G = flipdim(J,2);figure;imshow(G);title('水平镜像图像');三、实验环境Window 2000Matlab 7.0.1四、实验内容与步骤读取并显示一幅灰度图像;对原图像进行平移操作,调整平移参数,记录不同结果;对原图像进行缩放操作,调整缩放参数,将图像缩放至不同大小;对原图像进行旋转操作,调整角度参数,记录不同结果;对原图像进行水平镜像和垂直镜像操作。

数字图像处理实验报告(三四五)

数字图像处理实验报告(三四五)

实验三图像的几何变换一.实验目的及要求掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。

二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

1. 图像缩放clear all, close allI = imread('cameraman.tif');Scale = 1.35; % 将图像放大1.35倍J1 = imresize(I, Scale, 'nearest'); %using the nearest neighbor interpolationJ2 = imresize(I, Scale, 'bilinear'); %using the bilinear interpolationimshow(I), title('Original Image');figure, imshow(J1), title('Resized Image-- using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image-- using the bilinear interpolation ');% 查看imresize使用帮助help imresizeCommand窗口显示如下:IMRESIZE Resize image.B = IMRESIZE(A, SCALE) returns an image that is SCALE times thesize of A, which is a grayscale, RGB, or binary image.B = IMRESIZE(A, [NUMROWS NUMCOLS]) resizes the image so that it hasthe specified number of rows and columns. Either NUMROWS or NUMCOLS may be NaN, in which case IMRESIZE computes the number of rows orcolumns automatically in order to preserve the image aspect ratio.[Y, NEWMAP] = IMRESIZE(X, MAP, SCALE) resizes an indexed image.[Y, NEWMAP] = IMRESIZE(X, MAP, [NUMROWS NUMCOLS]) resizes an indexed image.T o control the interpolation method used by IMRESIZE, add a METHODargument to any of the syntaxes above, like this:IMRESIZE(A, SCALE, METHOD)IMRESIZE(A, [NUMROWS NUMCOLS], METHOD),IMRESIZE(X, MAP, M, METHOD)IMRESIZE(X, MAP, [NUMROWS NUMCOLS], METHOD) METHOD can be a string naming a general interpolation method: 'nearest' - nearest-neighbor interpolation'bilinear' - bilinear interpolation'bicubic' - cubic interpolation; the default method METHOD can also be a string naming an interpolation kernel: 'box' - interpolation with a box-shaped kernel'triangle' - interpolation with a triangular kernel(equivalent to 'bilinear')'cubic' - interpolation with a cubic kernel(equivalent to 'bicubic')'lanczos2' - interpolation with a Lanczos-2 kernel'lanczos3' - interpolation with a Lanczos-3 kernelFinally, METHOD can be a two-element cell array of the form {f,w}, where f is the function handle for a custom interpolation kernel, andw is the custom kernel's width. f(x) must be zero outside the interval -w/2 <= x < w/2. Your function handle f may be called with a scalar or a vector input.You can achieve additional control over IMRESIZE by using parameter/value pairs following any of the syntaxes above. For example:B = IMRESIZE(A, SCALE, PARAM1, VALUE1, PARAM2, VALUE2, ...)Parameters include:'Antialiasing' - true or false; specifies whether to performantialiasing when shrinking an image. Thedefault value depends on the interpolationmethod you choose. For the 'nearest' method,the default is false; for all other methods,the default is true.'Colormap' - (only relevant for indexed images) 'original'or 'optimized'; if 'original', then theoutput newmap is the same as the input map.If it is 'optimized', then a new optimizedcolormap is created. The default value is'optimized'.'Dither' - (only for indexed images) true or false;specifies whether to perform colordithering. The default value is true.'Method' - As described above'OutputSize' - A two-element vector, [MROWS NCOLS],specifying the output size. One element maybe NaN, in which case the other value iscomputed automatically to preserve the aspectratio of the image.'Scale' - A scalar or two-element vector specifying theresize scale factors. If it is a scalar, thesame scale factor is applied to eachdimension. If it is a vector, it containsthe scale factors for the row and columndimensions, respectively.Examples--------Shrink by factor of two using the defaults of bicubic interpolation and antialiasing.I = imread('rice.png');J = imresize(I, 0.5);figure, imshow(I), figure, imshow(J)Shrink by factor of two using nearest-neighbor interpolation. (This is the fastest method, but it has the lowest quality.)J2 = imresize(I, 0.5, 'nearest');Resize an indexed image.[X, map] = imread('trees.tif');[Y, newmap] = imresize(X, map, 0.5);imshow(Y, newmap)Resize an RGB image to have 64 rows. The number of columns is computed automatically.RGB = imread('peppers.png');RGB2 = imresize(RGB, [64 NaN]);Note----The function IMRESIZE in previous versions of the Image ProcessingT oolbox used a somewhat different algorithm by default. If you need the same results produced by the previous implementation, call the function IMRESIZE_OLD.Class Support-------------The input image A can be numeric or logical and it must be nonsparse. The output image is of the same class as the input image. The inputindexed image X can be uint8, uint16, or double.See also imresize_old, imrotate, imtransform, tformarray.Reference page in Help browserdoc imresize执行程序所得结果如下:改变参数Scale =0.5得到图形结果如下:对以上实验结果,分析如下:通过查看命令窗口查看imresize函数的使用方法。

数字图像处理实验报告实验三

数字图像处理实验报告实验三
2.设计一个检测图3-2中边缘的程序,要求结果类似图3-3,并附原理说明
代码:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
图5-2 添上一层(漆)
3.开运算open:
4.闭close:
5.HMT(Hit-Miss Transform:击中——击不中变换)
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3 击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
se = strel('ball',5,5);
I2 = imerode(I,se);
imshow(I), title('Original')
figure, imshow(I2), title('Eroded')
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
SE = strel('square',W)
构造一个正方形的矩阵。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告实验一数字图像的获取一、实验目的1、了解图像的实际获取过程。

2、巩固图像空间分辨率和灰度级分辨率、邻域等重要概念。

3、熟练掌握图像读、写、显示、类型转换等matlab函数的用法。

二、实验内容1、读取一幅彩色图像,将该彩色图像转化为灰度图像,再将灰度图像转化为索引图像并显示所有图像。

2、编程实现空间分辨率变化的效果。

三、实验原理1、图像读、写、显示I=imread(‘image.jpg’)Imview(I)Imshow(I)Imwrite(I,’wodeimage.jpg’)2、图像类型转换I=mat2gray(A,[amin,amax]);按指定的取值区间[amin,amax]将数据矩阵A转化为灰度图像I,amin对应灰度0,amax对应1,也可以不指定该区间。

[x,map]=gray2ind(I,n);按指定的灰度级n将灰度图像转化为索引图像,n默认为64I=ind2gray(x,map);索引图像转化为灰度图像I=grb2gray(RGB);真彩色图像转化为灰度图像[x,map]=rgb2ind(RGB);真彩色图像转化为索引图像RGB=ind2rgb(x,map);索引图像转化为真彩色图像BW=im2bw(I,level);将灰度图像转化为二值图像,level取值在[0,1]之间BW=im2bw(x,map,level);将索引图像转化为二值图像,level取值在[0,1]之间BW=im2bw(RGB,level);将真彩色图像转化为二值图像,level取值在[0,1]之间四、实验代码及结果1、in=imread('peppers.png');i=rgb2gray(in);[x,map]=gray2ind(i,128);subplot(131),imshow(in)subplot(132),imshow(i)subplot(133),imshow(x),colormap(map)2、%空间分辨率变化的效果clc,close all,cleari=imread('cameraman.tif');i=imresize(i,[256,256]);i1=i(1:2:end,1:2:end);[m1,n1]=size(i)i2=i1(1:2:end,1:2:end);[m2,n2]=size(i2)i3=i2(1:2:end,1:2:end);[m3,n3]=size(i3)subplot(221),imshow(i),xlabel('256x256')subplot(222),imshow(i1),xlabel('128x128')subplot(223),imshow(i2),xlabel('64x64')subplot(224),imshow(i3),xlabel('32x32')256 x 256128 x 12864 x 6432 x 32实验二图像的几何变换一、实验目的掌握图像的基本几何变换的方法1、图像的平移2、图像的旋转二、实验内容练习用matalb 命令实现图像的平移、旋转操作1、.编写实现图像平移的函数2、用imread 命令从你的硬盘读取一幅256×256灰度图;3、调用平移函数,将256×256灰度图平移100行200列,在同一个窗口中显示平移前和平移后的图像。

数字图像处理实验06图像的几何变换

数字图像处理实验06图像的几何变换

一、数字图像处理实验实验六 图像的几何变换一、实验目的学习和掌握图像几何空间变换和灰度插值的基本方法,对图像进行相应的几何变换操作。

二、实验内容1.编程实现图像的比例缩放。

2. 编程实现图像任意角度的旋转变换。

3. 分别用MATLAB 函数提供的三种插值方法实现图像的缩放和旋转。

三、实验原理图像的几何变换可以看成是像素在图像内的移动过程,该移动过程可以改变图像中物体对象(像素)之间的空间关系。

完整的几何运算需要由两个算法来实现:空间变换算法和灰度插值算法。

空间变换主要用来保持图像中曲线的连续性和物体的连通性,一般都采用数学函数形式来描述输入、输出图像相应像素间的空间关系。

空间变换一般定义为)],(),,([),(),(y x b y x a f y x f y x g =′′= (6.1)其中,f 表示输入图像,g 表示输出图像,坐标),(y x ′′指的是空间变换后的坐标,要注意这时的坐标已经不是原来的坐标),(y x 了,),(y x a 和),(y x b 分别是图像的x 和y 坐标的空间变换函数。

灰度级插值主要是对空间变换后的像素赋予灰度值,使之恢复原位置处的灰度值,在几何运算中,灰度级插值是必不可少的组成部分。

因为图像一般用整数位置处的像素来定义。

而在几何变换中,),(y x g 的灰度值一般由处在非整数坐标上的),(y x f 的值来确定,即g 中的一个像素一般对应于f 中的几个像素之间的位置,反过来看也是一样,即f 中的一个像素往往被映射到g 中的几个像素之间的位置。

下面介绍图像几何变换常用的方法。

1. 图像的缩放假设图像x 轴方向缩放比例fx ,y 轴方向缩放比例是fy ,那么原图中点),(00y x 对应于新图中的点),(11y x 的转换矩阵为:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1100000010011y x f f y x y x (6.2) 其逆运算如下: ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1100010********y x f f y x y x (6.3) 即: ⎩⎨⎧+=+=]5.0[]5.0[1010y x f y y f x x (6.4) 中括号表示对表达式取整。

数字图像处理实验报告(附答案解析)

数字图像处理实验报告(附答案解析)

实验一常用MATLAB图像处理命令一、实验目的1、熟悉并掌握MA TLAB工具的使用;2、实现图像的读取、显示、代数运算和简单变换。

二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、常用函数●读写图像文件1 imreadimread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')2 imwriteimwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’) 3 imfinfoimfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif') ●图像的显示1imageimage函数是MATLAB提供的最原始的图像显示函数,如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2 imshowimshow函数用于图像文件的显示,如:i=imread('e:\w01.tif');imshow(i);title(‘原图像’)%加上图像标题3 colorbarcolorbar函数用显示图像的颜色条,如:i=imread('e:\w01.tif');imshow(i);colorbar;4 figurefigure函数用于设定图像显示窗口,如:figure(1); /figure(2);5 subplot把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。

Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。

6 plot绘制二维图形plot(y)Plot(x,y)xy可以是向量、矩阵。

图像类型转换1 rgb2gray//灰色把真彩图像转换为灰度图像i=rgb2gray(j)2 im2bw//黑白通过阈值化方法把图像转换为二值图像I=im2bw(j,level)Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%3 imresize改变图像的大小I=imresize(j,[m n])将图像j大小调整为m行n列图像运算1 imadd两幅图像相加,要求同样大小,同种数据类型Z=imadd(x,y)表示图像x+y2 imsubstract两幅图像相减,要求同样大小,同种数据类型Z=imsubtract(x,y)表示图像x-y3 immultiplyZ=immultiply(x,y)表示图像x*y4 imdivideZ=imdivide(x,y)表示图像x/y5:m = imadjust(a,[,],[0.5;1]) ;%图像变亮n = imadjust(a,[,],[0;0.5]) ;%图像变暗g=255-a;%负片效果四、实验内容(请将实验程序填写在下方合适的位置,实验图像结果拷屏粘贴)1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。

数字图像处理实验报告

数字图像处理实验报告

数字图象处理实验报告主要是图象的几何变换的编程实现,详细包括图象的读取、改写,图象平移,图象的镜像,图象的转置,比例缩放,旋转变换等.详细要求如下:1.编程实现图象平移,要求平移后的图象大小不变;2.编程实现图象的镜像;3.编程实现图象的转置;4.编程实现图象的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图象发展旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.本实验的目的是使学生熟悉并掌握图象处理编程环境,掌握图象平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图象文件的读、写操作,及图象平移、镜像、转置和旋转等几何变换的程序实现.3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开辟工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创立高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软根抵类库(MFC)和活动模板类库(ATL),因此它是软件开辟人员不可多得的开辟工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开辟,正由于VC具有明显的优势,于是我选择了它来作为数字图象几何变换的开辟工具.在本程序的开辟过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的表达和灵便的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图象BMP(BIT MAP )位图的文件构造:详细组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=”BM” bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebiXPelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或者更少256色DIB有256个表项或者更少真彩色DIB没有调色板每一个表项长度为4字节(32位)像素按照每行每列的顺序罗列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIBPixels DIB图象数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部份组成.2. BMP文件头BMP文件头数据构造含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保存字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每一个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有假设干个表项,每一个表项是一个RGBQUAD类型的构造,定义一种颜色.详细包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows一个扫描行所占的字节数必须是 4的倍数(即以long为单位),缺乏的以0填充.3.3 BMP(BIT MAP )位图的显示:①普通显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创立显示用位图, 用函数创立兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形发展淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图象所用颜色要少的设备上显示彩色图象.BMP位图显示方法如下:1. 翻开视频函数,普通放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在 函数中 显示位图5. 关闭视频函数 ,普通放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或者打印机上显示DIB. 在显示时不发展缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式发展控制,可以指定每一个像素颜色的位数,而且可以指定是否发展压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创立GDI位图.5. CreateDIBSection函数:该函数能创立一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数.它的最主要的优点是可以使用颤动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图象的几何变换图象的几何变换,通常包括图象的平移、图象的镜像变换、图像的转置、图象的缩放和图象的旋转等.实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图象处理的一些根本算法程序,来稳固和掌握图象处理技术的根本技能,提高实际动手能力,并通过实际编程了解图象处理软件的实现的根本原理。

数字图像处理实验 几何变换

数字图像处理实验  几何变换

某学校学生实验报告实验课名称:数字图像处理实验项目名称:几何变换专业名称:班级:学号:学生姓名:教师姓名:年月日实验日期:年月日实验室名称:一.实验名称:图像的几何变换二.实验目的与要求:1.充分了解数字图像的编程环境;2.充分掌握图像的镜像、旋转、缩放等几何变换三.实验内容:1.自编图像显示、存储界面程序;2.对所读入的图像进行镜像、旋转、缩放等几何变换四.实验设备与软件环境:一台电脑和Matlab、VC++环境五.源程序:%镜像代码:T=[-1 0 0; 0 1 0; 0 0 1];A=imread('che.jpg');A1=A;figure; imshow(A1); title('原始图像');t=maketform('affine',T);B=imtransform(A1,t);figure; imshow(B); title('反转图像'); image=[B A];figure; imshow(image); title('镜像图像'); %缩放代码:I1=imread('che.jpg');J=imresize(I,2);figure; imshow(J); title('放大2倍图像'); J2=imresize(I,0.5);figure; imshow(J2); title('缩小0.5图像'); %旋转代码:I=imread('che.jpg');scale=1.1angle=50*pi/180;tx=10;ty=0;sc=scale*cos(angle);ss=scale*sin(angle);T=[sc -ss;ss sc;tx ty];t=maketform('affine',T);I2=imtransform(I,t);figure; imshow(I2); title('旋转图像');六.运行结果与分析七.实验中遇到的问题、解决方法及体会:通过这次实验,我对数字图像处理这门课程有了进一步的认识,掌握了一些简单的图像处理,如镜像、旋转、缩放等几何变换。

图像几何变换实验报告

图像几何变换实验报告

图像几何变换实验报告图像几何变换实验报告引言:图像几何变换是计算机视觉领域的重要研究方向之一。

通过对图像进行旋转、缩放、平移等变换操作,可以改变图像的形状、大小和位置,从而实现图像处理和分析的目的。

本实验旨在通过编程实现常见的图像几何变换算法,并对其效果进行评估和分析。

一、图像旋转变换图像旋转变换是指将图像按照一定的角度进行旋转操作。

在实验中,我们使用了旋转矩阵来实现图像的旋转。

通过调整旋转角度,我们可以观察到图像在不同旋转角度下的变化。

实验结果显示,当旋转角度较小时,图像的形状基本保持不变,但会出现一定程度的畸变。

随着旋转角度的增加,图像的形状逐渐发生变化,出现明显的扭曲和形变现象。

二、图像缩放变换图像缩放变换是指改变图像的尺寸大小。

在实验中,我们通过调整缩放系数来实现图像的缩放操作。

实验结果表明,当缩放系数小于1时,图像会变小,细节信息会丢失;而当缩放系数大于1时,图像会变大,但可能会出现像素过度拉伸的情况。

因此,在进行图像缩放时,需要根据实际需求选择合适的缩放系数,以保证图像的质量和清晰度。

三、图像平移变换图像平移变换是指将图像沿着水平或垂直方向进行移动操作。

在实验中,我们通过调整平移距离来实现图像的平移。

实验结果显示,当平移距离较小时,图像的位置变化不明显;而当平移距离较大时,图像的位置会发生明显的偏移。

因此,在进行图像平移时,需要根据实际需求选择合适的平移距离,以确保图像的位置调整符合预期。

四、图像仿射变换图像仿射变换是指通过线性变换和平移变换来改变图像的形状、大小和位置。

在实验中,我们通过调整仿射变换矩阵的参数来实现图像的仿射变换。

实验结果表明,仿射变换可以实现图像的旋转、缩放和平移等多种操作,且变换后的图像形状基本保持不变。

然而,当仿射变换矩阵的参数设置不当时,可能会导致图像的形变和失真现象。

五、图像透视变换图像透视变换是指通过透视投影将图像从一个平面映射到另一个平面。

在实验中,我们通过调整透视变换矩阵的参数来实现图像的透视变换。

数字图像处理实验报告图像增强处理与几何变换

数字图像处理实验报告图像增强处理与几何变换

实验图像增强处理与几何变换一、实验目的利用Matlab图像处理工具箱中的函数实现图像点处理、空间域平滑和锐化处理、彩色图像处理、几何处理,巩固其原理与计算方法学习,深化课程理论认知。

二、实验内容1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;2、图像均值滤波和中值滤波、图像锐化处理;3、图像几何变换处理;4、图像彩色合成和彩色变换处理;三、实验步骤1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;1.1图像的灰度变换启用MATLAB,输入以下代码运行I= imread('cameraman-8.bmp','bmp');figure; subplot(2,2,1), imshow(I);%获取图像直方图subplot(2,2,2),imhist(I);[counts1,x1] = imhist(I);%观察Counts,x的值subplot(2,2,3),stem(x1,counts1);%图像灰度变换J=imadjust(I,[0.1 0.7],[0.0 0.9]);subplot(2,2,4), imshow (J);%对比灰度变换前后的图像及其直方图figure;subplot(2,3,1),imshow(I);subplot(2,3,2),imshow(J);subplot(2,3,4),imhist(I);subplot(2,3,5),imhist(J);[counts2,x2] = imhist(J);subplot(2,3,6), stem(x2,counts2);图 1.1.1图 1.1.21.2图像直方图均衡化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp') ;%直方图均衡化处理J=histeq(I) ;%对比均衡化处理前后的图像及其直方图figure(1),subplot(2,2,1),imshow(I),subplot(2,2,2),imshow(J); figure(1),subplot(2,2,3),imhist(I),subplot(2,2,4),imhist(J);图 1.2 1.3直方图规定化启用MATLAB,输入以下代码运行I1=imread('TM5.bmp','bmp');I2=imread('TM3.bmp','bmp');%直方图规定化处理K1=histeq(I1,imhist(I2));%对比规定化处理前后的图像及其直方图figure;subplot(3,2,1),imshow(I1);subplot(3,2,2), imhist(I1);subplot(3,2,3),imshow(I2);subplot(3,2,4), imhist(I2);subplot(3,2,5),imshow(K1);subplot(3,2,6), imhist(K1);图 1.32、图像空间域平滑2.1 用均值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp');J=imnoise(I,'gaussian'); %添加高斯噪声K=imnoise(I,'salt & pepper'); %添加椒盐噪声M=imnoise(I,'speckle'); %添加乘性噪声H=ones(3,3)/9; %3*3的均值去噪模板%滤波去噪处理I1=imfilter(I,H);J1=imfilter(J,H);K1=imfilter(K,H);M1=imfilter(M,H) ;%对比线性滤波去噪处理前后的图像figure;subplot(2,4,1),imshow(I);title('原图');subplot(2,4,2),imshow(J); title('高斯噪声图像'); subplot(2,4,3),imshow(K); title('椒盐噪声图像'); subplot(2,4,4),imshow(M); title('乘性噪声图像'); subplot(2,4,6),imshow(J1); title('高斯噪声滤波图像'); subplot(2,4,7),imshow(K1); title('椒盐噪声滤波图像'); subplot(2,4,8),imshow(M1) ; title('乘性噪声滤波图像') ; 输出图像如下图 2.12.2 用中值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp');I1=imnoise(I,'gaussian');I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle');%3×3中值滤波模板J=medfilt2(I,[3,3]);J1=medfilt2(I1,[3,3]);J2=medfilt2(I2,[3,3]);J3=medfilt2(I3,[3,3]);figure,subplot(2,4,1),imshow(I) ; title('原图') ;subplot(2,4,2),imshow(I1) ; title('添加高斯噪声') ;subplot(2,4,3),imshow(I2) ; title('添加椒盐噪声') ;subplot(2,4,4),imshow(I3) ; title('添加乘性噪声') ;subplot(2,4,6),imshow(J1) ;title('高斯噪声3*3中值滤波') ; subplot(2,4,7),imshow(J2) ;title('椒盐噪声3*3中值滤波') ; subplot(2,4,8),imshow(J3) ;title('乘性噪声3*3中值滤波') ;K=medfilt2(I, [5,5]); %5×5中值滤波模板K1=medfilt2(I1,[5,5]);K2=medfilt2(I2,[5,5]);K3=medfilt2(I3,[5,5]);figure;subplot(2,2,1),imshow(K); title('原图5*5中值滤波'); subplot(2,2,2),imshow(K1) ; title('高斯噪声5*5中值滤波') ; subplot(2,2,3),imshow(K2); title('椒盐噪声5*5中值滤波'); subplot(2,2,4),imshow(K3) ; title('乘性噪声5*5中值滤波'); 输出结果如下图 2.2.1图 2.2.22.3 图像空间域锐化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp')H=fspecial('sobel')%用sobel算子做模板%锐化处理J=imfilter(I,H)%锐化处理前后图像对比figure,subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(J); 输出图像如下图 2.33、图像几何变换3.1 缩放启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%放大图像J=imresize(I,2) ;%缩小图像K=imresize(I,0.5) ;%图像对比figure(1),subplot(),imshow(I),title('原图'),figure(2),subplot(),imshow(J),title('放大两倍的图'),figure(3),subplot(),imshow(K),title('缩小0.5倍的图') ;输出图像如下图 3.1.1 图3.1.2图 3.1.33.2旋转启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%旋转图像M=imrotate(I,45) ;%图像对比figure;subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(M) ;输出图像如下图 3.24、彩色图像处理4.1彩色合成启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');J1=I; J2=I;J3=I; J4=I;J5=I;%改变J1、J2、J3、J4、J5中的波段次序,组合成新的波段合成J1(:,:,1)=I(:,:,2); J1(:,:,2)=I(:,:,3); J1(:,:,3)=I(:,:,1) ;J2(:,:,1)=I(:,:,1); J2(:,:,2)=I(:,:,3); J2(:,:,3)=I(:,:,2) ;J3(:,:,1)=I(:,:,2); J3(:,:,2)=I(:,:,1); J3(:,:,3)=I(:,:,3) ;J4(:,:,1)=I(:,:,3); J4(:,:,2)=I(:,:,2); J4(:,:,3)=I(:,:,1) ;J5(:,:,1)=I(:,:,3); J5(:,:,2)=I(:,:,1); J5(:,:,3)=I(:,:,2) ;%对比原图像I与新图像J1、J2、J3、J4、J5的彩色差异,理解假彩色合成figure,subplot(2,3,1),imshow(I),title('原图');subplot(2,3,2),imshow(J1),title('变换一') ;subplot(2,3,3),imshow(J2),title('变换二') ;subplot(2,3,4),imshow(J3),title('变换三') ;subplot(2,3,5),imshow(J4),title('变换四') ;subplot(2,3,6),imshow(J5),title('变换五');输出图像如下图4.1 4.2彩色变换启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');HSV=rgb2hsv(I) ;RGB=hsv2rgb(HSV) ;%对比彩色变换前后的图像figure;subplot(1,3,1),imshow(I),title('原图'),subplot(1,3,2),imshow(HSV),title('HSV图像'); subplot(1,3,3),imshow(RGB),title('RGB图像') ;输出结果如下图 4.2四、实验算法要点总结1、图像点处理直方图修正法通常分为直方图均衡化和直方图规定化两类2、图像均值滤波和中值滤波、图像锐化处理3、图像几何变换处理4、图像彩色合成和彩色变换处理通过映射函数将彩色图像或多光谱图像变换成新的三基色分量线性假彩色映射表示为:。

数字图像处理实验报告通用

数字图像处理实验报告通用

数字图像处理实验报告通用数字图像处理实验报告通用数字图像处理是现代科学技术发展过程中的一个重要方向,它广泛地涉及到了计算机、数学、物理、电子等多个学科。

数字图像处理实验是数字图像处理领域中不可或缺的重要研究手段之一。

为了更好地展示实验结果和数据,以下是数字图像处理实验报告通用模板,以供参考。

1. 实验目的本次实验的目的是掌握数字图像处理的基本概念、算法以及其应用,在实践中学习数字图像处理的基础操作和技巧。

通过实验,学生可以更深入地理解数字图像处理的原理,并掌握数字图像处理应用的方法和技术。

2. 实验原理数字图像处理是将数字信号处理和图像处理结合起来的技术。

主要基于数字通信和数字信号处理原理,将二维图像进行数字化,并对其进行处理,实现图像的获取、传输、分析和显示等功能。

3. 实验流程(1) 图像获取和预处理:获取需要处理的图像,并进行基本的预处理,包括降噪、锐化、自适应增强等。

(2) 图像增强:通过滤波、直方图均衡化、灰度拉伸等操作,增强图像的亮度、对比度等特征。

(3) 图像变换:包括几何变换(旋转、平移、缩放等)、色彩空间变换(RGB空间、HSV空间等)等。

(4) 特征提取和分类:从图像中提取出感兴趣的特征,进行分类判别、目标检测等。

(5) 结果展示和分析:将处理后的图像结果进行展示和分析,分析图像特征和处理效果。

4. 实验结果(1) 原始图像(2) 预处理后的图像(3) 增强后的图像(4) 变换后的图像(5) 提取出的特征及分类结果(6) 结果展示和分析5. 实验总结通过本次实验,我们对数字图像处理的基本概念、算法和应用有了更深的理解,并掌握了数字图像处理的基础操作和技巧。

对于未来的科学研究和工程技术领域,数字图像处理具有广泛的应用前景,我们有信心在这个领域不断深耕,为社会的发展进步做出更大的贡献。

数字图像处理——几何变换实验

数字图像处理——几何变换实验

数字图像处理——几何变换实验实验一:图像几何变换(编程报告)一、实验目的(1) 学习几种常见的图像几何变换,并通过实验体会几何变换的效果;(2) 掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编程实现(3) 掌握MATLAB编程环境中基本的图像处理函数(4) 掌握图像的复合变换二、涉及知识点(1) 图像几何变换不改变图像像素的值,只改变像素所在的几何位置(2) 图像裁剪imcrop函数,语法格式为:B=imcrop(A);交互式用鼠标选取区域进行剪切B=imcrop(A,[XMIN YMIN WIDTH HEIGHT]);针对指定的区域[XMIN YMIN WIDTH HEIGHT]进行剪切(3) 图像缩放imresize函数,语法格式为:B = imresize(A,m,method)这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。

B = imresize(A,m,method)返回原图A的m倍放大的图像(m 小于1时效果是缩小)。

(4) 图像旋转imrotate函数,语法格式为:B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。

三、实验内容(1) 将图像hehua.bmp裁剪成200*200大小(2) 制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色填充(3) 利用剪切图像函数制作动画(4) 将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显示图像。

(5) 将图像水平镜像,再顺时针旋转45度,显示旋转后的图。

(6) 将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果四、实验环境Windows下MATLAB编程环境五、实验源代码及结果1. f=imread('hehua.bmp');figure; imshow(f); title('原图');f2=imcrop(f,[100,50,300,250]); figure;imshow(uint8(f2)); title('裁剪后');imwrite(f2,'d:/5/hehua1.bmp');2. f=imread('hehua1.bmp');[m,n,x]=size(f); f=double(f); for i=1:10 mx=10*i; my=10*i;g=zeros(m,n,x)+255;%g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my ,1:x); g(1:m-mx,1:n-my ,1:x )=f(mx+1:m,my+1:n,1:x); figure;imshow(uint8(g)); end3. f=imread('hehua1.bmp');[m,n]=size(f); for i=50:10:200 m=i; n=i;f2=imcrop(f,[n,n,m,m]); figure;imshow(uint8(f2)); end4. f=imread('hehua1.bmp');figure; imshow(f); title('原图'); f=double(f);f1=imresize(f,1.5,'bilinear'); figure;imshow(uint8(f1)); title('放大1.5倍');f2=imresize(f,0.8,'bilinear'); figure;imshow(uint8(f2)); title('缩小0.8倍');5. f=imread('hehua1.bmp');subplot(131);imshow(f);title('原图');[m,n,x]=size(f);g=zeros(m,n,x);for i=1:mfor j=1:nfor k=1:xg(i,j,k)=f(i,n-j+1,k);endendendsubplot(132);imshow(uint8(g));title('水平镜像');f2=imrotate(g,45,'crop'); subplot(133);imshow(uint8(f2));title('顺时针旋转45度');6. f=imread('hehua1.bmp');subplot(131); imshow(f); title('原图'); h=size(f);f1=zeros(h(1)+round(h(2)*tan(pi/6)),h(2),h(3)); for m=1:h(1) for n= 1:h(2)f1(m+round(n*tan(pi/6)),n,1:h(3))=f(m,n,1:h(3)); end endsubplot(132);imshow(uint8(f1)); title('水平30度');f2=zeros(h(1),h(2)+round(h(2)*tan(pi/4)),h(3)); for m=1:h(1) for n= 1:h(2)f2(m,n+round(m*tan(pi/4)),1:h(3))=f(m,n,1:h(3));end endsubplot(133);imshow(uint8(f2)); title('垂直45度');。

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

数字图像处理实验—图像的几何变换
姓名:***
班级:信息10-1
学号:36号
实验三、图像的几何变换
一、 实验目的
1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;
2.掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编程实现
3.掌握matlab 编程环境中基本的图像处理函数
4.掌握图像的复合变换
二、 实验原理
1 初始坐标为(x , y )的点经过平移(0x ,0y ),坐标变为('x ,'y ),两
点之间的关系为:⎩⎨⎧+=+=0
0''y y y x x x ,以矩阵形式表示为:
⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥
⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 0y 1 0 0 11''00y x x y x 2 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:
⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 1 0 0 0 11''y x y x ⎢⎢⎢⎣⎡⎥
⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 1- 0 0 0 11''y x y x 3 图像缩小和放大变换矩阵相同:
⎢⎢⎢⎣⎡⎥
⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 0 0 0 1''y x y x S S y x 当1 ,1≤≤y x S S 时,图像缩小;1 ,1≥≥y x S S 时,图像放大。

4 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。

其变换矩阵为:
⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 cos sin 0 sin cos 1''y x y x θθθθ 该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(b a ,)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。

三、实验步骤
1 启动MA TLAB程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作,与实验箱运行结果进行比对;
2 记录和整理实验报告
四、实验程序
X=imread('E:\test.jpg');
figure,imshow(X);title('原图')
%缩放
A=[0.5 0 0;0 2 0;0 0 1];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z),title('图像缩放');
%图像旋转
A=[cos(pi/4) sin(pi/4) 0;-sin(pi/4) cos(pi/4) 0;0 0 1];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z);title('图像旋转');
%水平剪切
A=[1 0 0;0.5 1 0;0 0 1];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z);title('水平剪切');
%垂直剪切
A=[1 0.5 0;0 1 0;0 0 1];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z);title('垂直剪切');
%水平镜像
A=[-1 0 0;0 1 0;1 0 1];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z);title('水平镜像');
%垂直镜像
A=[1 0 0;0 -1 0;0 1 1];
T=maketform('affine',A);
Z=imtransform(X,T);
figure,imshow(Z);title('垂直镜像');
五、实验结果图
原图图像缩放图像旋转
垂直剪切
垂直镜像
六、结果分析
1.图像的平移。

经典的图像平移有两种算法,一种不会改变图像大小,另一种可以相应扩大图像。

本程序采用了第一种算法。

为了使图像能按照用户指定的水平平移量和垂直平移量移动,作者首先定义了一个参数设定窗,并在图像平移菜单的事件处理函数中对此对话框进行定义,获取平移量。

然后调用图像平移函数,从而实现将图像中所有的点(像素)都按照指定的平移量水平、垂直移动,平移后的图像上的每一点都可以在原图像中找到对应的点。

2.图像的镜像。

图像的水平镜像操作是将图像的左半部分和右半部分以图像垂直中轴线为中心镜像进行对换;图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线镜像进行对换。

可以一个个像素进行镜像,也可以利用位图存储的连续性进行整行复制。

对于水平镜像作者采用前者,而垂直镜像采用后者,对两种方法都进行了尝试。

3.图像的转置。

即将图像像素的x坐标和y坐标互换。

它和图像的镜像变换类似,不同之处在于图像转置后DIB的头文件也要进行相应的改变,即更新宽度和高度信息。

因此传递给图像转置函数的参数是直接指向DIB的指针,而不是直接指向DIB像素的指针。

程序首先一个个像素进行转置复制,然后互换DIB 中图像的高宽,实现图像转置的功能。

4.图像的缩放。

程序将图像按用户设定的X轴方向的缩放比率和Y轴方向的缩放比率进行缩放。

此操作产生的图像中的像素可能在原图中找不到相应的像素点,因此必须进行近似处理。

此处理有多种方法,可以采用最邻近插值算法,也可以采用别的插值算法。

后者处理效果要好一些,但是运算量也相应增加很多,因此本程序采用前者,即最邻近插值算法。

最后,由于缩放改变了图像的高度和宽度,因此还需要对DIB头文件的高度和宽度信息进行更新。

5.图像的旋转。

程序将图像以图像中心为原点,按照用户设定的旋转角度进行旋转。

和图像的平移一样,可以采用不同的算法,既可以把转出显示区域的部分图像截去,也可以扩大图像范围以显示所有图像,在本程序中采用后者。

同时为了减小运算量,将图像以图像中心为坐标系原点进行旋转,而不是用户指定的任意一点。

相关文档
最新文档