实验二 图像几何变换与傅里叶变换
数字图像处理实验报告
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
数字图像处理实验指导书
《数字图像处理》实验指导书数字图象处理实验的目的不仅是让学生通过用MATLAB等高级语言编写数字图像处理的一些基本算法程序,巩固和掌握图像处理技术的理论、方法和基本技能,提高实际动手能力,而且通过综合实习,让学生能探讨和应用数字图像处理技术去解决一些实际问题。
为学生进一步学习和应用数字图像技术解决实际问题奠定基础。
实验一、数字图像获取 (2)实验二、图像的傅立叶变换 (5)实验三、图像直方图增强 (7)实验四数字图像空间域平滑 (11)实验五数字图像锐化 (14)实验六、图像压缩 (17)实验七图像融合 (21)实验八图像分割 (23)实验一、数字图像获取一、实验目的1掌握使用扫描仪等数字化设备以及计算机获取数字图像的方法;2修改图像的存储格式。
二、实验原理用扫描仪获取图像也是图像的数字化过程的方法之一。
扫描仪按种类可以分为手持扫描仪,台式扫描仪和滚筒式扫描仪(鼓形扫描仪)。
扫描仪的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。
各类扫描仪都标明了它的光学分辨率和最大分辨率。
分辨率的单位是dpi,dpi 是英文Dot Per Inch的缩写,意思是每英寸的像素点数。
扫描仪工作时,首先由光源将光线照在欲输入的图稿上,产生表示图像特征的反射光(反射稿)或透射光(透射稿)。
光学系统采集这些光线,将其聚焦在CCD上,由CCD将光信号转换为电信号,然后由电路部分对这些信号进行A/D转换及处理,产生对应的数字信号输送给计算机。
当机械传动机构在控制电路的控制下,带动装有光学系统和CCD的扫描头与图稿进行相对运动,将图稿全部扫描一遍,一幅完整的图像就输入到计算机中去了。
图1.1扫描仪的工作原理扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。
为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。
数字图像处理——实验二--图像的几何变换
数字图像处理实验二实验二图像的几何变换一.实验目的及要求掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。
二、实验设备1.计算机;2.MATLAB6.5;三、实验内容及结果(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1. 图像缩放分析:imresize 函数功能:用于对图像做缩放处理J1 = imresize(I, Scale, 'nearest') 即将图像I,采用最近邻插值算法,放大(缩小)Scale倍。
J2 = imresize(I, Scale, 'bilinear') 即将图像I,采用双线性插值算法,放大(缩小)Scale倍。
通过改变Scale的大小,可以观察到生成的图像大小随之改变,且放大倍数越大,图像变得越模糊。
在放大相同倍数的情况下,可以观察到采用双线性插值算法的图像更为清晰。
2. 图像旋转分析:imrotate 函数功能:用于对图像做旋转处理J1 = imrotate(I, Theta, 'nearest') 即将图像I,采用最近邻插值算法,绕图像的中心点旋转Theta度,正数表示逆时针旋转,负数表示顺时针旋转,旋转后的图像超出的部分填充0(黑色)。
J2 = imrotate(I, Theta, 'bilinear','crop') 功能同上,不同的是采用了双线性插值算法,'crop'表示通过对旋转后的图像进行裁剪,保持旋转后输出图像的尺寸和输入图像的尺寸一样。
通过改变Theta的大小,可以观察到生成的图像旋转角度随之改变,同时,采用双线性插值算法的图像更为清晰。
3.图像水平镜象分析:flipdim(X,dim),其中X表示一个矩阵,dim指定翻转方式,dim为1,表示按行翻转,2表示按列翻转。
实验二 图像变换
实验二图像变换
一、实验内容
1.对图像进行平移,掌握图像的傅里叶频谱和平移后的傅里叶频谱的对应关系;
2.对图像进行旋转,掌握图像的傅里叶频谱和旋转后的傅里叶频谱的对应关系。
2、实验原理
如果F(u,v)的频率变量u,v各移动了u0,v0距离,f(x,y)的变量x,y各移动了x0,y0距离,则傅里叶变换如下所示
因此傅里叶变换的平移性质表明函数与一个指数项相乘等于将变换后的空域中心移到新的位置,平移不改变频谱的幅值。
傅里叶旋转可以通过下面变换得到:
对f(x,y)旋转一个角度对应于将其傅里叶变换F(u,v)也旋转相同的角度。
3、实验方法和程序
1. 选取一副图像,进行离散傅里叶变换,将其中心移到零点,得到
其离散傅里叶变换。
参考例4.10
2. 选取一副图像,进行离散余弦变换,并对其进行离散余弦反变
换。
参考例4.13
3. 选取一副图像,采用butterworth高通滤波器对图像进行高通滤
波。
参考例5.7
4、实验结果与分析
Matlab代码以及结果图
5、思考题
1. 将图像分别进行X轴与Y轴上的平移,所得傅里叶频谱与原图像
的傅里叶频谱有什么变换?。
实验二图像变换(FT DCT)
图像变换图像变换是图像预处理中常用技术手段,在图像增强、复原、编码里有着非常广泛的应用。
实验目的:1、学习傅立叶变换2、学习离散余弦变换实验时间:2-4个小时实验结果:写成电子文档,保存在服务器上实验内容:1.傅立叶变换熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布.2.离散余弦变换熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换.1、傅立叶变换步骤如下:clcI=imread('ibm.bmp');subplot(2,3,1)imshow(I);title('原图');subplot(2,3,2)imhist(I);colorbar;title('原图直方图');J=fft2(I);subplot(2,3,3)imshow(J);title('fft变换图');%figure;K=fftshift(J);subplot(2,3,4)imshow(K);title('原点移至频谱中心');%figure;subplot(2,3,5)imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;title('彩色频谱');结果如下:2.离散余弦变换熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT 系数阈值对其进行DCT反变换.步骤如下:clcload imdemos;i=imread('tank.jpg');subplot(2,2,1);imshow(i);title('原始图象');j=rgb2gray(i);subplot(2,2,2);imshow(j);title('黑白化后的图像');% 图象的DCT变换b=dct2(j);subplot(2,2,3)imshow(log(abs(b)),[]),colormap(jet(64)),colorbar;title('DCT变换结果');%figure;b(abs(b)<10)=0;% idctc=idct2(b)/255;subplot(2,2,4)imshow(c);title('IDCT变换结果');结果如下:。
傅里叶变换 实验报告
傅里叶变换实验报告傅里叶变换实验报告引言:傅里叶变换是一种重要的数学工具,广泛应用于信号处理、图像处理、物理学、工程学等领域。
本次实验旨在通过实际操作和数据分析,深入了解傅里叶变换的原理、特性以及应用。
一、实验目的本实验的目的是通过实际操作,掌握傅里叶变换的基本原理,了解其在信号处理中的应用,并能够正确进行频域分析。
二、实验仪器和材料1. 信号发生器2. 示波器3. 计算机4. 傅里叶变换软件三、实验步骤1. 将信号发生器与示波器连接,并设置合适的频率和幅度,产生一个正弦信号。
2. 通过示波器观察并记录原始信号的时域波形。
3. 将示波器输出的信号通过音频线连接到计算机的输入端口。
4. 打开傅里叶变换软件,选择输入信号源为计算机输入端口,并进行采样。
5. 在傅里叶变换软件中,通过选择合适的窗函数、采样频率和采样点数,进行傅里叶变换。
6. 观察并记录变换后的频域波形,并进行分析。
四、实验结果与分析通过实验操作和数据分析,我们得到了信号的时域波形和频域波形。
在时域波形中,我们可以清晰地看到正弦信号的周期性特征,而在频域波形中,我们可以看到信号的频率成分。
傅里叶变换将信号从时域转换到频域,通过分析频域波形,我们可以得到信号的频率成分。
在实验中,我们可以通过改变信号发生器的频率和幅度,观察频域波形的变化,进一步理解傅里叶变换的原理和特性。
此外,傅里叶变换还可以用于信号滤波。
通过观察频域波形,我们可以选择性地去除某些频率成分,从而实现信号的滤波处理。
这在音频处理、图像处理等领域中具有广泛的应用。
五、实验总结本次实验通过实际操作和数据分析,深入了解了傅里叶变换的原理、特性以及应用。
傅里叶变换作为一种重要的数学工具,在信号处理、图像处理等领域中具有广泛的应用前景。
通过本次实验,我们不仅掌握了傅里叶变换的基本原理和操作方法,还深入了解了信号的时域和频域特性。
这对于我们进一步研究和应用傅里叶变换具有重要的意义。
总之,傅里叶变换是一项重要的数学工具,通过实际操作和数据分析,我们可以更好地理解和应用傅里叶变换,为信号处理和图像处理等领域的研究和应用提供有力支持。
实验二 图像的傅立叶变换
实验二图像的傅立叶变换一、实验目的1了解图像变换的意义和手段;2熟悉傅立叶变换的基本性质;3熟练掌握FFT变换方法及应用;4通过实验了解二维频谱的分布特点;5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。
6评价人眼对图像幅频特性和相频特性的敏感度。
二、实验内容:产生亮块图像f1(x,y)(128*128,暗处灰度值为0,亮处灰度值为255),对其进行FFT:(1)同屏显示原图f1和FFT(f1)的幅度谱图(2)令f2(x,y)=(-1)^(x+y)f1(x,y),重复以上过程,比较二者幅度谱的异同(3)将f2(x,y)顺进针旋转45度得到f3(x,y),对f3作FFT产生亮块图像f1(x,y),并存储三、实验原理1 应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
2 傅立叶(Fourier )变换的定义对于二维信号,二维Fourier 变换定义为:2()(,)(,)j ux uy F u v f x y e dxdy π∞∞-+-∞-∞=⎰⎰逆变换:2()(,)(,)j ux uy f x y F u v e dudv π∞∞+-∞-∞=⎰⎰二维离散傅立叶变换为:112()001(,)(,)i kN N j m n N Ni k F m n f i k eN π---+===∑∑ 逆变换:112()001(,)(,)i k N N j mn N Nm n f i k F m n eNπ--+===∑∑四、 实验分析1、 生成大小为128×128,暗处=0,亮处=255的图像图象f1(x,y)。
2、 对原图像进行傅立叶变换,再显示幅度频谱图,其间运用函数fftshift进行修正,使变换后的直流分量位于图形的中心。
3、 把空间的频率平面坐标系的原点移到(M/2,N/2)的位置,即令0/2u M =,0/2v N =,则)2/,2/()1)(,(N v M u F y x f y x --⇔-+上式表明:如果需要将图像频谱的原点从起点(0,0)移到图像的中点(M/2,N/2),只要将f(x,y)乘以因子(1)x y +-进行傅立叶变换即可实现。
实验二 图像变换
实验二图像变换(DFT、DCT变换)一、实验目的1、熟练掌握DFT、DCT变换的MA TLAB实现;2、利用MATLAB完成(DFT、DCT)变换,求出图像的频谱;二、实验原理及内容二维傅立叶变换的matlab实现:fft: 一维DFT变换ifft:一维DFT反变换fft2: 二维DFT变换ifft2: 二维DFT反变换fftn: N维DFT变换fftn: N维DFT反变换fftshift: 将经过fft、fft2和ffn变换后的频谱中心(0频)移到矩阵或向量的2、离散余弦变换(DCT)离散余弦变换的matlab实现:dct2:二维DCT变换idct2:二维DCT反变换内容1、编程求给定图像lena.bmp的傅立叶频谱;2、将给定图像lena.bmp旋转45度,求其傅立叶频谱;3、编程求给定图像lena.bmp的DCT频谱;4、利用DCT反变换求原始图像;5、利用DCT实现对图像lena.bmp的压缩,压缩率为80%。
三、实验程序、结果及框图1、DFT变换及DCT变换实验框图实验程序(1)clear all; %清空所有变量I=imread('lena.jpg'); %读入图像J=fftshift(fft2(I)); %对原图进行DFT变换,并将其中心移到零点J2=imrotate(I,45); %将图像旋转45度J3=fftshift(fft2(J2)); %对旋转后图像求DFT频谱subplot(2,2,1);imshow(I);xlabel('原图') %显示原图subplot(2,2,2);imshow(log(abs(J)),[8 10]);xlabel('原图DFT变换频谱') %显示原图频谱subplot(2,2,3);imshow(J2);xlabel('旋转45度图像') %显示旋转后图像subplot(2,2,4);imshow(log(abs(J3)),[8 10]);xlabel('旋转图像DFT频谱') %显示旋转图像频谱(2)J4=dct2(I); %对原图进行DCT变换J5=idct2(J4)/255; %进行DCT逆变换J6=uint8(round(J5*255)); %将double转换为uint8型I2=I-J6; %求差值figure;subplot(2,2,1);imshow(I);xlabel('原图') %显示原图subplot(2,2,2);imshow(log(abs(J4)),[]);xlabel('原图DCT频谱') %显示原图DCT频谱subplot(2,2,3);imshow(J5);xlabel('DCT反变换图像') %显示DCT反变换图像subplot(2,2,4);imshow(I2);xlabel('变换前后图像差值') %显示DCT变换前后差值(1)DFT变换(2)DCT2、图像压缩实验框图实验程序clear all %清空工作空间I=imread('lena.jpg'); %读入图像I=double(I)/255; %转换成double型T=dctmtx(8); %生成一个8*8的DCT变换矩阵B=blkproc(I,[8 8],'P1*x*P2',T,T'); %进行离散余弦变换mask=[1 1 1 1 0 0 0 0 ;1 1 1 0 0 0 0 0 ;1 1 0 0 0 0 0 0 ;1 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0]; %压缩DCT的系数B2=blkproc(B,[8 8],'P1.*x',mask); %舍弃高频系数,达到图像压缩目的I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %反余弦变换,得到压缩图像imshow(I);xlabel('原始图像') %显示原图figure,imshow(I2);xlabel('压缩后图像') %显示压缩图像四、思考题1、离散傅立叶变换、离散余弦变换有什么区别和联系?答:离散傅里叶变换简称DFT;离散余弦变换(DCT)只包含了实数部分,将主要的信息放到较少的系数上去。
计算机图形学实验报告几何变换
计算机图形学实验报告计算机图形学实验报告姓名徐沛华班级1011 学号20101851 成绩实验名称二维图形的几何变换1.对平面图形进行平移、缩放、旋转、对称实验目的实验步骤算法分析:图形变换是指对图形的几何信息经过几何变换后产生新的图形。
图形变换既可以看作坐标系不动而图形变动,变动后的图形在坐标系中的坐标值发生变化;也可以看作图形不动而坐标系变动,变动后,该图形在新的坐标系下具有新的坐标值。
设(x,y)为图形原坐标值,经几何变换后坐标值变为(**,x y)。
以下为四种常用的几何变换公式。
(a) 平移变换:平移变换在前面的任务中已经用到过,它的变换公式为:[]**100,,1,,1010,,11x yx yx y x y x T y TT T⎡⎤⎢⎥⎡⎤⎡⎤==++⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦(b) 旋转变换:绕原点旋转的变换公式为:[][] **cos sin0,,1,,1sin cos0cos sin,sin cos,1001x y x y x y x yθθθθθθθθ⎡⎤⎢⎥⎡⎤=-=⋅-⋅⋅+⋅⎣⎦⎢⎥⎢⎥⎣⎦(c) 放缩变换:[]**00,,1,,100,,1001xy x ySx y x y S S x S y⎡⎤⎢⎥⎡⎤⎡⎤==⋅⋅⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦几种变换可以组合在一起形成复合变换。
例如平移变换与旋转变换组合得到:(d) 相对点00(,)x y的旋转变换:[]**0000cos sin0 ,,1,,1sin cos0(1cos)sin(1cos)sin1 x y x yx y y xθθθθθθθθ⎡⎤⎢⎥⎡⎤=-⎣⎦⎢⎥⎢⎥-⋅+⋅-⋅-⋅⎣⎦ii、算法程序:void CZhouView::pingyi(){CClientDC dc(this);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y);dc.MoveTo(m_nPoint1.x+100,m_nPoint1.y+100);dc.LineTo(m_nPoint2.x+100,m_nPoint2.y+100);}void CZhouView::xuanzhuan(){CClientDC dc(this);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y);dc.MoveTo((m_nPoint1.x*cos(0.5))-(m_nPoint1.y*sin(0.5)),(m_nPoint 1.x*sin(0.5))+(m_nPoint1.y*cos(0.5)));dc.LineTo((m_nPoint2.x*cos(0.5))-(m_nPoint2.y*sin(0.5)),(m_nPoint2 .x*sin(0.5))+(m_nPoint2.y*cos(0.5)));}void CZhouView::bili(){CClientDC dc(this);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y);dc.MoveTo(m_nPoint1.x*2,m_nPoint1.y*2);dc.LineTo(m_nPoint2.x*2,m_nPoint2.y*2);}void CZhouView::XCQ(){CClientDC dc(this);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x+100,m_nPoint2.y);}void CZhouView::DC(){CClientDC dc(this);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y);dc.MoveTo(m_nPoint1.y,m_nPoint1.x);dc.LineTo(m_nPoint2.y,m_nPoint2.x);}dc.MoveTo(m_nPoint1.y,m_nPoint1.x);dc.LineTo(m_nPoint2.y,m_nPoint2.x);}void CZhouView::YCQ(){CClientDC dc(this);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y);dc.MoveTo(m_nPoint1.x,m_nPoint1.y);dc.LineTo(m_nPoint2.x,m_nPoint2.y+100); }//OnLButtonUp(UINT nFlags, CPoint point) case 8:pingyi();break;case 9:xuanzhuan();break;case 10:bili();break;case 11:XCQ();break;case 12:YCQ();break;case 13:DC();break;编译,运行:平移:。
MATLAB数字图像处理几何变换傅里叶变换.docx
Matlab数字图像处理实验指导实验目的:通过实验,深入理解和掌握图像处理的基本技术,提高动手实践能力。
实验环境:Matlab变成实验一图像的几何变换实验内容:设计一个程序,能够实现图像的各种几何变换。
实验要求:读入图像,打开图像,实现图像的平移变换、比例缩放、转宜变换、镜像变换、旋转变换等操作。
实验原理:图像儿何变换乂称为图像空间变换,它将一幅图像中的朋标位置映射到另一•幅图像中的新处标位査。
学习儿何变换的关键就是要确定这种空间映射关系,以及映射过程小的变化参数。
几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。
一个几何变换需要两部分运算:首先是空间变换所盂的运算,如平移、镜像和旋转等,需要川它來表示输出图像与输入图像Z间的(像素)映射关系;此外,述需耍使用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像索可能被映射到输入图像的非整数坐标上。
设原图像f(xO,yO)经过几何变换产生的口标图像为g(xlYL),则该空间变换(映射)关系可表示为:xl=s(xO,yO)yl=t(xO,yO)其中,s(xO,yO)和t(xO,yO)为由f(xO,yO)到g(xl,yl)的坐标换变换函数。
一、图像平移图像平移就是将图像屮所有-的点按照指定的平移最水平或者垂肓移动。
二、 图像镜像镜像变换又分为水平镜像和垂肓镜像。
水平镜像即将图像左半部分和右半部分以图像竖 直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线 为中心轴进行对换。
三、 图像转置图像转置是将图像像索的x 坐标和y 坐标呼唤。
图像的大小会随Z 改变——高度和宽度 将呼唤。
原图像 10015020025050100 150 200 250 50100 150 200 250 图像平移50 100 150 200 250原图像 水平镜像原图像图像转蛊四、 图像的缩放图像缩放是指将图像大小按照指定的比率放大或者缩小。
图像几何变换实验报告
图像几何变换实验报告图像几何变换实验报告引言:图像几何变换是计算机视觉领域的重要研究方向之一。
通过对图像进行旋转、缩放、平移等变换操作,可以改变图像的形状、大小和位置,从而实现图像处理和分析的目的。
本实验旨在通过编程实现常见的图像几何变换算法,并对其效果进行评估和分析。
一、图像旋转变换图像旋转变换是指将图像按照一定的角度进行旋转操作。
在实验中,我们使用了旋转矩阵来实现图像的旋转。
通过调整旋转角度,我们可以观察到图像在不同旋转角度下的变化。
实验结果显示,当旋转角度较小时,图像的形状基本保持不变,但会出现一定程度的畸变。
随着旋转角度的增加,图像的形状逐渐发生变化,出现明显的扭曲和形变现象。
二、图像缩放变换图像缩放变换是指改变图像的尺寸大小。
在实验中,我们通过调整缩放系数来实现图像的缩放操作。
实验结果表明,当缩放系数小于1时,图像会变小,细节信息会丢失;而当缩放系数大于1时,图像会变大,但可能会出现像素过度拉伸的情况。
因此,在进行图像缩放时,需要根据实际需求选择合适的缩放系数,以保证图像的质量和清晰度。
三、图像平移变换图像平移变换是指将图像沿着水平或垂直方向进行移动操作。
在实验中,我们通过调整平移距离来实现图像的平移。
实验结果显示,当平移距离较小时,图像的位置变化不明显;而当平移距离较大时,图像的位置会发生明显的偏移。
因此,在进行图像平移时,需要根据实际需求选择合适的平移距离,以确保图像的位置调整符合预期。
四、图像仿射变换图像仿射变换是指通过线性变换和平移变换来改变图像的形状、大小和位置。
在实验中,我们通过调整仿射变换矩阵的参数来实现图像的仿射变换。
实验结果表明,仿射变换可以实现图像的旋转、缩放和平移等多种操作,且变换后的图像形状基本保持不变。
然而,当仿射变换矩阵的参数设置不当时,可能会导致图像的形变和失真现象。
五、图像透视变换图像透视变换是指通过透视投影将图像从一个平面映射到另一个平面。
在实验中,我们通过调整透视变换矩阵的参数来实现图像的透视变换。
傅里叶变换实验报告
一、实验目的1. 理解傅里叶变换的基本原理及其在信号处理中的应用。
2. 掌握傅里叶变换的数学计算方法。
3. 利用MATLAB软件实现傅里叶变换,并对实验结果进行分析。
二、实验原理傅里叶变换是一种重要的信号处理方法,它可以将信号从时域转换到频域。
在频域中,信号的特征更加明显,便于分析和处理。
傅里叶变换的基本原理是将一个信号分解为不同频率的正弦波和余弦波的叠加。
傅里叶变换分为连续傅里叶变换(CFT)和离散傅里叶变换(DFT)。
CFT适用于连续信号,而DFT适用于离散信号。
在本实验中,我们将使用DFT。
三、实验步骤1. 利用MATLAB软件创建一个时域信号,如正弦波、方波或三角波。
2. 对信号进行采样,得到离散信号。
3. 使用MATLAB的fft函数对离散信号进行傅里叶变换。
4. 分析傅里叶变换后的频谱,观察信号在不同频率下的能量分布。
5. 对频谱进行滤波处理,提取感兴趣的特征。
6. 将滤波后的频谱进行逆傅里叶变换,还原信号。
四、实验结果与分析1. 信号创建在本实验中,我们创建了一个频率为50Hz的正弦波信号,采样频率为1000Hz。
2. 傅里叶变换使用MATLAB的fft函数对信号进行傅里叶变换,得到频谱。
观察频谱,发现50Hz 处的能量最大,与信号频率一致。
3. 滤波处理对频谱进行低通滤波,保留50Hz以下的频率成分,滤除高于50Hz的频率成分。
然后对滤波后的频谱进行逆傅里叶变换,还原信号。
观察还原后的信号,发现高频噪声被滤除,信号质量得到提高。
4. 逆傅里叶变换将滤波后的频谱进行逆傅里叶变换,还原信号。
观察还原后的信号,发现其波形与原始信号基本一致,但噪声明显减少。
五、实验结论1. 通过本实验,我们掌握了傅里叶变换的基本原理和计算方法。
2. 利用MATLAB软件可以方便地实现傅里叶变换,并对实验结果进行分析。
3. 傅里叶变换在信号处理中具有广泛的应用,如信号滤波、图像处理、通信等领域。
4. 本实验验证了傅里叶变换在噪声抑制方面的有效性,有助于提高信号质量。
实验二 图像几何变换
由于这组几何失真图像仅仅为梯形失真,故只需选取四个顶点为连接点即可。选取完毕后将连接点的 坐标数据传输到 Workspace 中,即可调用。
4
《数字图像处理》实验报告
上图中存在一个小问题——我找到的图片并非 256*256 像素,而是大约 230*230 像素,因此最后输出 到一个 256*256 像素的图片中会有一个 L 型黑边(如 Figure 3) ,于是我又增加了两行代码(上述代码最后 两行) ,多输出了一幅图像,将输出范围降低到 230*230 像素,如 Figure 4 中的图像,将黑边去掉了。
5
《数字图像处理》实验报告
六、实验总结
我想先陈述一个事实:做完了这两个实验后,结合我本人的一些经历,我深刻的意识到数字图像处理 这门学科,或许在学校学习的课时并不算多,但它在学校外、在社会上所能起到的影响是深远的。 在各个网站中关注了十几个科技媒体的我是一个不折不扣的电子硬件爱好者,我关注的领域里自然有 智能手机这一项, 而拍照成为了智能手机众多基本功能中重要的一环。 在以往我观看过的手机评测视频中, 无论这个手机是华丽、是平庸,是奢侈、是廉价,拍照测试的环节总是不可或缺。人们既希望在廉价手机 上看到高质量的拍摄样张,以证明廉价手机的高性价比;又希望在高端机型上看到“媲美单反”的成像效 果,以符合其高端机的定位。而手机的整个拍摄模块体积与性能普遍受限,可想而知,在这样的情况下要 想调校出出色的成像效果,所需要掌握的数字图像处理的知识必须达到一定境界。 两个国际大厂——苹果手机在 800 万像素级别沉淀了四年来积累经验,始终领跑业界;三星奋起直追 在 Galaxy S6 上完成反超,与苹果一同称霸手机拍照领域。可其他公司呢,就连国外索尼、LG 以及曾经的 HTC 等大厂, 在拍照领域也仅仅是某个机型昙花一现; 而国内无数的公司, 花大价钱从国外买镜头模组、 SOC, 用着不输于别人的硬件,却连个昙花一现的机型都未曾出现。 但我确确实实不想说出“恨铁不成钢”这样的话,因为这两个实验确实让我感受到数字图像处理是一 门深奥的学科,研究它需要花大量的时间,并不是需要推理出什么样的公式、定理,而是通过无数次的实 验,获得无数次的结果,从而主观上积累大量的数字图像处理的经验。所以我对国内手机厂商抱有支持和 鼓励的态度。 从现实上讲,实验 1 的图像增强技术在民用级拍照领域应用广泛,而实验 2 的几何变换则在军事、医 学上能够起到重要的作用。 坦诚地讲,在课堂学习时我有些许的放松和懈怠,但经历了这两次实验,我觉得我没有理由不学好数 字图像处理。世界的进步永不停歇,而我更不应停下奋斗的脚步。
数字图像处理报告——图像的平滑和傅里叶变化
数字图像处理报告——图像的平滑和傅里叶变化第一篇:数字图像处理报告——图像的平滑和傅里叶变化数字图像处理实验报告课程数字图像处理实验名称图像平滑处理噪声和傅里叶变换专业班级姓名学号实验日期 2010.12 教师审批签字目录一,实验目的和要求.............................................3 二,实验内容和原理.............................................3~4 三,相关函数......................................................4 四,源程序代码及运行结果....................................5~12 4.1给图像添加椒盐噪声或者高斯噪声.......................................5 4.2对被噪声污染的图像进行中值滤波和均值滤波........................6 4.3进行空间域的平滑............................................................7 4.4,开发自己的空间域的均值滤波,模板大小使用3×3...............8 4.5,自己的空间域的图像锐化--算子锐化.................................9 4.6,傅里叶变换和傅里叶反变换.............................................10 4.7,巴特沃斯低通滤波.........................................................11 五,心得体会.........................................................13 六,参考文献. (13)图像平滑处理噪声和傅里叶变换一、实验目的和要求1、实验目的(1)熟悉Matlab软件、编程以及图像处理工具箱。
实验二数字图像变换
figure; imshow(newImage2);
title('压缩图像 M10');
A=imread('aaa.tif'); I=rgb2gray(A); trueImage=im2double(I); %转换图像矩阵为双精度型 imshow(trueImage); title('原始图像'); dctm=dctmtx(8); %计算离散余弦变换 imageDCT=blkproc(trueImage,[8 8],'P1*x*P2',dctm,dctm.'); %对图像I 的每个不同8*8数据块应用矩阵式’P1*x*P2’进行处理。 M10=[1 1 1 1 1 1 1 1 11111110 11111100 11111000 11110000 11100000 11000000 1 0 0 0 0 0 0 0]; %二值掩模,用来压缩DCT 的系数
从上幅图像中可以看到,直流成分主要集中在右上
角,分辨率比较低。通过fftshift函数提供补零和直流成
分显示区域调整后得到调整以后的结果如上图所示。
2、离散余弦变换DCT的MATLAB实现。 一种是基于图像离散余弦变换的算法,这是通过 MATLAB工具箱提供的dct2 函数和idct2函数实现的; 另一种是DCT变换矩阵方法。变换矩阵方法非常适 合做8*8 或16*16 的图像块的DCT 变换,工具箱提供了 dctmtx 函数来计算变换矩阵。
fftshift函数实现补零操作和改变图象显示象限
N=100; f=zeros(50,50); f(15:35,23:28)=1; subplot(2,1,1) imshow(f) F=fft2(f,256,256); F2=fftshift(F); subplot(2,1,2) imshow(log(abs(F2)));
数字图像处理实验二 图像几何变换
计算机科学与工程学院实验(二)实验名称图像几何变换软件环境Windows Visual Studio 2017硬件环境PC实验目的掌握图像的几何变换方法,编程实现图像几何变换。
实验内容(应包括实验题目、实验要求、实验任务等)一、设计新的几何变换方法,分析其几何变换原理。
二、编程实现图像的几何变换。
要求:编程实现图像的几何变换功能。
任务:(1)在左视图中打开一幅bmp位图,包括256色或真彩色位图(2)制作五个【图像的XXX变换】菜单,将消息映射到右视图中,在右视图中进行图像的几何变换功能。
实验过程与实验结果一、设计新的几何变换方法,分析其几何变换原理。
图像配准什么是图像配准?所谓图像配准就是将同一场景的两幅或多幅图像进行对准。
如航空照片的配准,以及在很多人脸自动分析系统中的人脸归一化,即要使各张照片中的人脸具有近似的大小,尽量处于相同的位置。
一般来说,我们以基准图像为参照,并通过一些基准点(fiducial points)找到适当的空间变换关系s和r,对输入图像进行相应的几何变换,从而实现它与基准图像在这些基准点位置上的对齐。
图1:常见的几种配准变换类型//错误提示MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, Message BoxIcon.Stop);}}}效果图:图2-1 平移变换前图2-2 平移变换后{int width = objBitmap.Width;int height = objBitmap.Height;Bitmap bitmap = new Bitmap(width, height);for (int x = 0; x < width; x++){for (int y = 0; y < height; y++){bitmap.SetPixel(x, y, objBitmap.GetPixel(x, height-1-y));}}curBitmap = new Bitmap(bitmap);bitmap.Dispose();this.pictureBox_new.Image = curBitmap;}catch (Exception ex){//错误提示MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBox Icon.Stop);}}效果图:图3-1 水平镜像后图3-2 垂直镜像后3.缩放变换实现步骤:1.获取原图像的Bitmap对象objBitmap,以及其大小参量;2.获取缩放比例系数(X,Y);3.构造一个新Bitmap对象bitmap,宽高为宽*X+1,高*Y+1;4.迭代实现对objBitmap每一个像素点(Pixel)到bitmap的赋值操作:将每个像素点的坐标设置为原坐标/比例系数,如横坐标/X,纵坐标/Y;5.使用bitmap构造全局变量curBitmap,销毁bitmap对象,使用curBitmap初始化右侧显示框。
实验-图像几何变换
图像的几何变换一、实验目的1、掌握图像几何变换的基本原理2、掌握如何利用Matlab相应函数对图像进行几何变换(图像缩小、放大、旋转等)3、学会自己编写简单几何变换的程序二、实验内容1、对所选图像进行缩小操作2、对所选图像进行放大操作3、对所选图像进行旋转操作三、实验过程源程序及图像:p1=imread('moon.tif ');info=imfinfo('moon.tif');W=info.Width;H=info.Height;%显示原始图像figure(1);imshow(p1);%使用imresize()函数将原始图像缩小为原图形的0.5倍p2=imresize(p1,0.5);figure(2);imshow(p2);%不使用imresize()函数将原始图像缩小为原图形的0.5倍c=2;i=1:W./c;j=1:H./c;I=floor(c*i); J=floor(c*j);p3(j,i)=p1(J,I);figure(3);imshow(p3);%使用imresize()函数将原始图像放大为原图形的2倍p4=imresize(p1,2);figure(4);imshow(p4);%将原始图形旋转30度显示p6=imrotate(p1,30);figure(6);imshow(p6);%对旋转的图形进行插值计算p8=imrotate(p1,30,'bilinear');figure(8);imshow(p8);注:与图六中未标明插值结果相同,即Matlab中使用的函数会自动对变换后的图像进行插值计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二图像几何变换与傅里叶变换
课程名称数字图像处理实验名称图像几何变换与傅里叶变换
姓名__吴征宇学号____ 3101110002 专业班级_ 实验日期__2013 年_ _4月_24日成绩_____ __ 指导教师___ _
一、实验目的与要求
1.掌握图像平移、缩放、旋转与镜像变换;。
2.掌握傅里叶变换和反变换的方法,观察图像的频域表示的特点
二、实验例程
1、几何变换
图像平移,自写平移函数immove.m
function outImage=immove(inImage,Tx,Ty,i)
[m, n,i] = size(inImage);%计算图象大小
outImage = uint8(zeros(m+abs(Ty), n+abs(Tx),i));
if(Tx>0&&Ty>0) %往右下角平移的情况
outImage(1+Ty:m+Ty,1+Tx:n+Tx,1:i) = inImage;
else if(Tx<0&&Ty<0) %往左上角平移的情况
outImage(1:m,1:n,1:i) = inImage;
else if (Tx<0&&Ty>0) %往左下角平移的情况
outImage(1+Ty:m+Ty,1:n, 1:i) = inImage;
else % 往右上角平移的情况
outImage(1:m,1+Tx:n+Tx, 1:i) = inImage;
end
end
end
2、傅里叶变换
1、matlab计算和形象化2DDFT
傅立叶变换函数和逆向傅立叶变换函数
F=fft2(f) f=real(ifft2(F))
例子:I=imread('dragfl.bmp');
f=real(ifft2(F));
F=fft2(I);
imshow(F,[])
f1=real(ifft2(F));
imshow(f,[])
傅立叶频谱计算函数
s=abs(F)
例子:频谱可视化
I=imread('dragfl.bmp');
F=fft2(I);
S=abs(F);
imshow(S,[])
中心频谱函数:把变换的原点移到频域区域中心
Fc=fftshift(F)
把变换的频域区域中心移到原点:
F=ifftshift(F)
例子:中心频谱可视化
I=imread('dragfl.bmp');
F=fft2(I);
Fc=fftshift(F);
S=abs(Fc);
imshow(S,[])
f2=ifftshift(Fc);
imshow(abs(f),[])
频谱动态范围压缩(频谱增强):
例子:I=imread('dragfl.bmp');
F=fft2(I);
S=abs(Fc);
S2=log(1+abs(Fc));
imshow(S2,[])
三、实验内容及步骤
1.读入彩色图像,实现图像的平移、缩放、旋转和平移I=imread('d:\autumn.tif');
H=immove(I,80,-80);
figure;imshow(H);title('平移后图像');
B=immove(I,80,-50);
figure;imshow(B);title('平移后图像');
G=imresize(I,0.5);
figure;imshow(G);title('缩放后图像');
C=imresize(I,2);
figure;imshow(C);title('缩放后图像');
D=imrotate(I,30);
figure;imshow(D);title('旋转后图像');
E=imrotate(I,54);
figure;imshow(E);title('旋转后图像');
F = flipdim(I,1);
figure;imshow(F);title('垂直镜像图像');
G = flipdim(I,2);
figure;imshow(G);title('水平镜像图像')
imcrop(I,[80,80,80,80])
imcrop(I,[45,75,65,61])
2、读入一幅灰度图像,实现图像的平移、缩放、旋转和平移
J=rgb2gray(I);
imshow(J);title('原图像');
H=immove(J,80,-80);
figure;imshow(H);title('平移后图像');
B=immove(J,50,-50);
figure;imshow(B);title('平移后图像');
G=imresize(J,0.3);
figure;imshow(G);title('缩放后图像');
C=imresize(J,2);
figure;imshow(C);title('缩放后图像');
D=imrotate(J,45);
figure;imshow(D);title('旋转后图像');
E=imrotate(J,75);
figure;imshow(E);title('旋转后图像');
F = flipdim(J,1);
figure;imshow(F);title('垂直镜像图像');
G = flipdim(J,2);
figure;imshow(G);title('水平镜像图像')
imcrop(J,[80,80,80,80])
imcrop(J,[145,175,165,161])
2、读入一幅图像,绘制傅里叶变换的频谱。
I=imread('d:\autumn.tif');
matlab计算和形象化2DDFT
傅立叶变换函数和逆向傅立叶变换函数 F=fft2(f) f=real(ifft2(F))
I=imread('splash.bmp');
f=real(ifft2(F));
F=fft2(I);
imshow(F,[])
f1=real(ifft2(F));
imshow(f,[])
傅立叶频谱计算函数
s=abs(F)
例子:频谱可视化
I=imread(splash.bmp);
F=fft2(I);
S=abs(F);
imshow(S,[])
4、把变换的原点移到频域区域中心,观察频谱的变化
例子:频谱可视化
I=imread(splash.bmp);
F=fft2(I);
S=abs(F);
imshow(S,[])
中心频谱函数:把变换的原点移到频域区域中心
Fc=fftshift(F)
把变换的频域区域中心移到原点:
F=ifftshift(F)
例子:中心频谱可视化
I=imread('dragfl.bmp');
F=fft2(I);
Fc=fftshift(F);
S=abs(Fc);
imshow(S,[])
f2=ifftshift(Fc);
imshow(abs(f),[])
频谱动态范围压缩(频谱增强):
例子:I=imread('dragfl.bmp');
F=fft2(I);
S=abs(Fc);
S2=log(1+abs(Fc));
imshow(S2,[])
五、实验报告要求
描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果和源代码,并进行必要的讨论,必须包括原始图像及其计算/处理后的图像。