图像变换实验报告

合集下载

图像的几何变换

图像的几何变换

课程: 数字图像处理实验日期: 2012年 5 月日成绩:实验三图像的几何变换一.实验目的及要求掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法二、实验原理图像的几何变换是图像处理和图像分析的基础内容之一,它不仅提供了产生某些特殊效果图像的可能,而且可使图像处理和分析的程序简单化,特别是当图像具有一定的规律时,一个图形可以由另一个图像通过几何变换来实现。

图像的几何变换不改变图像的像素值,而改变像素所在位置。

从变换的性质分,图像的几何变换有位置变换(平移、镜像、旋转)、形状变换(比例缩放、错切)和复合变换等。

图像的位置变换主要包括图像平移变换、图像镜像变换和图像旋转变换等。

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

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

1. 图像缩放clear all, close allI = imread('cameraman.tif');Scale = 1.35; % 将图像放大1.35倍J1 = imresize(I, Scale, 'nearest'); %using the nearest neighbor interpolation J2 = 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 imresize说明:❶注意观察不同插值方法的图像表现;❷改变图像缩放因子Scale,重做上述实验。

实验二 图像变换

实验二 图像变换

实验二图像变换
一、实验内容
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轴上的平移,所得傅里叶频谱与原图像
的傅里叶频谱有什么变换?。

实验一 图像变换

实验一 图像变换

实验一 图像变换一、 实验目的1.了解图像变换的意义和手段;2.熟悉离散傅里叶变换、离散余弦变换的基本性质;3. 熟练掌握图像变换的方法及应用;4.通过实验了解二维频谱的分布特点;5.通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。

二、 实验原理1.应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2、图像变换的基本原理(1)傅立叶(Fourier )变换的定义对于二维连续信号,二维Fourier 变换定义为:正变换:⎰⎰∞∞-∞∞-+-=dxdy ey x f v u F vy ux j )(2),(),(π反变换:⎰⎰∞∞-∞∞-+=dudv e v u F y x f vy ux j )(2),(),(π 二维离散傅立叶变换为: 正变换:∑∑-=-=+-=101)//(2),(1),(M x N y N vy M ux j e y x f MN v u F π 反变换:∑∑-=-=+=1010)//(2),(),(M u N v N vy M ux j e v u F y x f π图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法。

实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

(2)离散余弦变换(DCT )的定义正变换为∑∑-=-=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=1010)21(cos )21(cos ),(2)()(),(M x N y y v N x u M y x f MN v C u C v u F ππ 其逆变换为∑∑-=-=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=1010)21(cos )21(cos ),()()(2),(N v M u y v N x u M v u F v C u C MN y x f ππ 离散余弦变换是图像压缩中常用的一种变换方法,任何实对称函数的傅里叶变换中只含余弦项,就成为余弦变换,因此余弦变换是傅里叶变换的特例。

实验五--图像频域变换

实验五--图像频域变换

实验五图像频域变换一、实验目的1.了解傅里叶变换在图像处理中的应用2.利用Matlab语言编程实现图像的频域变换。

二、实验内容1. 打开并显示一幅图像,对其进行Fourier变换,观察其频谱图像。

2. 用两种方法将图像的频域中心移动到图像中心,然后观察其Fourier变换后的频谱图像。

(见Fourier变换的性质:f(x,y) (-1)x+y F(u-N/2,v-N/2))对图像的Fourier变换频谱进行滤波,如:将频谱超过某个给定的值(均值或2/3均值)的变换值变为0,然后再求其Fourier逆变换,比较所得图像与原图像的差别。

3.对图像进行离散余弦变换,并观察其变换域图像。

要求:用Matlab语言进行编程实现上述功能,同时也应该熟悉用Matlab中现有的函数来实现。

傅里叶变换A)傅里叶变换基本操作I = imread(你的图像);imshow(I);title('源图像');J = fft2(I);figure, imshow(J);title('傅里叶变换');%频移JSh = fftshift(J);figure, imshow(JSh);title('傅里叶变换频移');%直接傅里叶反变换Ji = ifft2(J);figure, imshow(Ji/256);title('直接傅里叶反变换');%幅度JA = abs(J);iJA = ifft2(JA);figure, imshow(iJA/256);title('幅度傅里叶反变换');%相位JP = angle(J);iJP = ifft2(JP);figure, imshow(abs(iJP)*100);title('相位傅里叶反变换');B)利用MATLAB软件实现数字图像傅里叶变换的程序I=imread(‘原图像名.gif’); %读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅里叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取傅里叶变换的实部II=imag(sfftI); %取傅里叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%归一化figure; %设定窗口imshow(A); %显示原图像的频谱C)绘制一个二值图像矩阵,并将其傅里叶函数可视化。

图像变换实验报告

图像变换实验报告

实验一图像变换一、实验目的:1、巩固二维离散傅立叶变换的基本原理;2、掌握应用MATLAB语言对二维图像进行FFT及逆变换;掌握傅立叶变换的应用:线性滤波器的频率响应和图像特征定位;3、巩固离散余弦变换理论,掌握应用MATLAB语言对图像进行离散余弦变换,掌握离散余弦变换在JPEG编码中的应用;4、巩固离散沃尔什-哈达玛变换理论,掌握应用MATLAB语言对图像进行沃尔什-哈达玛变换。

二、实验内容:1.二维离散傅立叶变换1)参考实验书,用Matlab程序完成图5.5(a)中图形及其傅立叶变换,显示图形和三维图;2)读入一幅图像(LENA128.bmp),生成其傅立叶谱图,将此图像旋转45度,生成旋转45度后的谱图。

2.傅立叶变换的应用线性滤波器的频率响应产生二维矩形低通滤波器(滤波器参数自选),做此滤波器的频率响应图和空间域图形。

3.傅立叶变换的应用图像特征定位从图像text1.tif中选取一个特征(“图象”这两个字),在图像text2.tif中找出该特征的位置。

4.图像离散余弦变换及在JPEG中的应用1)对输入图像进行离散余弦变换,DCT系数门限值分别取0.6和4,显示变换后的系数图,显示DCT压缩后的图像。

2)DCT变换在JPEG压缩中的应用:将给定的图像harbour.tif划分为16×16的小块,做JPEG中DCT运算,并重构图像。

每小块的DCT系数保留左上角21个。

显示过程中图像DCT系数图,显示重构后的图像。

5.图像离散沃尔什-哈达玛变换读入一幅图像,对图像进行沃尔什-哈达玛变换。

并显示变换结果三.实验结果&结果分析:1.解答:(1)A=[];A(1:500,1:300)=0;for x=1:500for y=1:300;b=(x-250).^2/250^2+(y-150).^2/150^2; c=(x-250).^2/225^2+(y-150).^2/125^2; if (b<1 && c>1);A(x,y)=1;endendendimshow(A)F1=fft2(A,500,500);F=fftshift(F1);F2=log(abs(F));figure(2)imshow(F2,[0.1,5],'notruesize');colorbar figure(3)x=1:500;y=1:500;mesh(x,y,log(F(x,y)));colormap(gray);colorbar 图形及其傅立叶变换如下:(2)A=imread('LENA128.bmp');F1=fft2(A);F11=fftshift(F1);F111=log(abs(F11));B=imrotate(A,45);F2=fft2(B);F22=fftshift(F2);F222=log(abs(F22));subplot(2,2,1),imshow(A);subplot(2,2,2),imshow(F111,[]);subplot(2,2,3),imshow(B);subplot(2,2,4),imshow(F222,[]);图像的傅立叶谱图和旋转45度后的谱图如下:2.解答A=[];A(1:25,1:25)=0;for x=1:25for y=1:25b=(x-3).^2+(y-3).^2;if (b<10);A(x,y)=1;endendendsubplot(2,1,1),mesh(A);subplot(2,1,2),freqz2(A);滤波器的频率响应图和空间域图形如下:3.解答:bw=imread('text1.tif');A=bw(243:259,255:283);figure(1)imshow(A)bw1=imread('text2.tif');B=bw1(39:52,227:251);bw1=255-bw1;B=255-B;c=real(ifft2(fft2(bw1).*fft2(rot90(B,2),512,512))); figure(2)imshow(c,[])max(c(:))figure(3)imshow(c> ((4.7293e+006)-10));在图像中找出该特征的位置如下:4.解答:[A,map]=imread('LENA128.bmp');GRAY=mat2gray(A);D=dct2(GRAY);figure(1),subplot(3,1,1),imshow(log(abs(D)),[]); colormap(gray(4));colorbar;D(abs(D)<0.6)=0;I1=idct2(D)/255;subplot(3,1,2),imshow(I1);D1=dct2(GRAY);D1(abs(D1)<4)=0;I2=idct2(D1)/255;subplot(3,1,2),imshow(I2);(2)I=imread('harbour.tif');I=im2double(I);T=dctmtx(16);B=blkproc(I,[16 16],'P1*x*P2',T,T');mask=[];mask(1:16,1:16)=0;mask(1:5,1:4)=1;B2=blkproc(B,[16 16],'P1.*x',mask);I2=blkproc(B2,[16 16],'P1*x*P2',T',T);figure(2),subplot(2,1,1),imshow(I);subplot(2,1,2),imshow(I2);5.解答:[A,map]=imread('LENA128.bmp');GRAY=mat2gray(A);subplot(2,1,1),colormap(gray(128)),imagesc(GRAY);[m n]=size(GRAY)for k=1:nwht(:,k)=hadamard(m)*GRAY(:,k)/m;endfor j=1:mwh(:,j)=hadamard(n)*wht(j,:)'/nendwh=wh';subplot(2,1,2),colormap(gray(128)),imagesc(wh);四、实验分析由实验结果可知,在图像灰度转换过程中,其图像的清晰度随着灰度级的降低而降低。

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

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

实验报告实验名称:图像处理姓名:刘强班级:电信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. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数字图像处理实验报告实验七图像的几何变换1、实验目的理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用。

2、实验步骤(1).对原图使用最近邻插值法进行放大2倍。

(2).对原图使用双线性插值法进行旋转。

(3).对原图同时进行垂直镜像变换和水平镜像变换。

3、实验源码对原图使用最近邻插值法进行放大2倍i=imread('5.jpg')j=imresize(i,2,'nearest')figure(1),imshow(i)figure(2),imshow(j)对原图使用双线性插值法进行旋转i=imread('5.jpg')j=imrotate(i,45,'bilinear')subplot(1,2,1),imshow(i);title('原图')subplot(1,2,2),imshow(j);title('旋转45度')对原图同时进行垂直镜像变换和水平镜像变换i=imread('5.jpg')i=rgb2gray(i)[x,y]=size(i)p=1:x;q=1:ym(x-p+1,y-q+1)=i(p,q)subplot(1,2,1),imshow(i);title('原图')subplot(1,2,2),imshow(m);title('先水平镜像后垂直镜像')4、实验截图原图对原图使用最近邻插值法进行放大2倍对原图使用双线性插值法进行旋转的处理如下:对原图同时进行垂直镜像变换和水平镜像变换的处理结果:5、实验小结对图像进行垂直镜像和水平镜像变换的时候,图像应先转换为灰度图像,方可进行变化。

图像变换实验

数字图像处理实验报告1 - 图像变换学生姓名:学号:实验时间:地点:指导教师:实验名称:图像变换试验目的:(1)基于MATLAB的实验验证。

通过在MA TLAB环境中相关函数的调用,验证图像变换和图像频域处理效果,增强感性认识。

(2)基于C语言的基本图像处理。

通过编写C++程序,进一步理解算法的实现过程,为在实际应用软件中的应用打下基础。

实验内容:(1)MATLAB函数的直接调用通过在MA TLAB环境中相关函数的调用,验证傅立叶变换、DCT变换和小波变换的结果,并通过反变换恢复原图像。

①对’flower.tif’ 图片进行傅立叶变换,绘制原始图像和变换后的频谱图。

②对’ flower.tif’ 图片进行DCT变换,绘制原始图像和变换后的频谱图。

③对’ flower.tif’ 图片进行一层小波变换和反变换,绘制原始图像和重建后的图像,以及小波分解后的4个子图注意:可以采用colormap(‘gray’) 来设置灰色图像的绘制。

(2)提升小波变换实验验证图像的提升小波变换。

编写小波变换程序,实现图像的变换和反变换。

完成:●图像的读取;●提升小波变换、逆变换●原图像和重建图像的显示、比较。

(3)编写VC++程序,读取flower.yuv 的图像帧,将图彩色图像变为灰度图像,然后对图像像素做线性变换g (i) = a f(i)+b 。

i为任意像素序号,a,b为实数。

将a,b取不同值,显示变换前、后的画面。

例如a=-1,b=255; a=0.5,b=128 等。

实验记录与结果分析:(1)①第一步:对于第一个实验先产生一个tif格式的灰度图像,在这里采用微软window系统中的图像并进行灰度图像化来产生。

(程序详见附录1.1)结果如下:灰度图像是原图像的一个截取,防止像素太大处理速度变慢。

(毕竟这是一次试验)原图:灰度图:②第二步:对’flower.tif’ 图片进行傅立叶变换,绘制原始图像和变换后的频谱图。

图像变换实验报告心得

图像变换实验报告心得引言图像变换是计算机视觉领域的重要研究方向之一,它通过对图像的像素进行一系列的操作,实现对原始图像的改变和增强。

图像变换可以被广泛应用于图像处理、计算机图形学、机器学习等领域中。

为了进一步探索图像变换的应用和效果,我们进行了一系列的图像变换实验,并记录了实验过程和结果。

本篇报告旨在总结实验心得和体会,提出对图像变换实验的改进建议。

实验目的本次实验的目的是通过实现和比较不同的图像变换算法,探索图像变换对图像质量和可视化效果的影响。

具体目标如下:1. 实现常见的图像变换算法,包括平移、旋转、缩放和灰度变换等;2. 分析不同图像变换算法的优缺点,并比较其效果;3. 讨论图像变换对图像质量的影响,并给出评价标准;4. 提出改进图像变换算法的建议。

实验方法实验中,我们使用了Python编程语言,并借助开源的图像处理库OpenCV进行图像变换的实现。

针对不同的图像变换操作,我们选择了不同的算法和参数设置,以保证实验的全面性和可比性。

具体方法如下:1. 平移变换:我们使用OpenCV提供的`warpAffine`函数实现了平移变换,并通过调整平移向量的参数实现了不同程度的平移效果;2. 旋转变换:我们使用OpenCV提供的`getRotationMatrix2D`和`warpAffine`函数实现了旋转变换,并调整参数实现了不同角度和方向的旋转效果;3. 缩放变换:我们使用OpenCV提供的`resize`函数和不同的插值方法(如最近邻插值、双线性插值)实现了缩放变换,并对比了不同插值方法的效果;4. 灰度变换:我们实现了简单的灰度变换算法,包括将彩色图像转换为灰度图像,以及调整灰度图像的亮度和对比度。

实验结果通过对实验图像的处理和结果分析,我们得出了以下结论:1. 平移变换可以实现图像的横向和纵向移动,但当平移距离较大时,可能导致图像丢失部分内容;2. 旋转变换可以实现图像的旋转和翻转,但当旋转角度过大时,可能会导致图像失真和像素重叠;3. 缩放变换可以实现图像的放大和缩小,但不同的插值方法会影响图像的细节和平滑度;4. 灰度变换可以实现彩色图像到灰度图像的转换,并调整亮度和对比度,但需要注意亮度调整的边界问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般的旋转是以图像的中心为原点,将图像上的所有像素都 旋转一个相同的角度。
在 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、结合实例学习几种常见的图像变换,并通过实验体会图像变 换的效果; 2、理解和掌握图像旋转、缩放、离散傅里叶变换和离散余弦变 换的原理和应用,掌握利用 MATLAB 编程实现图像变换的方法。 二、实验内容 1、图像的几何变换,主要实现图像的缩放与旋转,要求变换中 用最近邻插值算法实现,或用双线性变换法实现并比较; 2、图像的正交变换,主要实现离散傅里叶变换(DFT)与离散余 弦变换(DCT)。 三、实验要求 1、独立完成; 2、编写 MATLAB 程序,并对程序中所调用函数的功能进行必要的 说明(可用“help 函数名”进行查询); 3、调试运行后保存实验结果(注意保存的文件格式); 4、完成实验报告。 四、实验原理 (一)图像的几何运算(变换)
DCT 结果添加颜色条。 (三)选做实验:频域滤波 1、编写 MATLAB 文件,读取数字图像“saturn.tif”,用巴特沃 斯滤波器去除图像中的椒盐噪声。 (1)添加椒盐噪声 imnoise(I); (2)傅里叶变换; (3)频率原点平移后的 FT; (4)用巴特沃斯滤波器去除椒盐噪声; (5)在一幅图上显示(1)~(4)的结果图像。 六、实验结果与分析 (一)图像的几何变换 1、图像的缩放与插值
通过两种方式旋转后的图像可以看到,crop 方式是对旋转后 的图像进行了裁剪,保持输出图像与输入图像的尺寸一致, loose 方式保证了旋转之后得到的图片还是完整。 (二)图像的正交变换 1、编写 MATLAB 文件,生成一个矩形函数,并对该函数进行正交 变换:
傅里叶变换的物理意义是将图像的灰度分布函数变换为频 率分布函数,通过二维快速傅里叶变换后的图像的四个角对应低 频成分,中央对应的是高频成分,能量沿着垂直和水平分布对应 的是图像中的矩形窗;补零变换后的图像克服了栅栏效应和频率 泄露带来的频率辨认困难问题;离散傅里叶变换变换结果是关于 原点对称的两个半周期, 通过中心频移显示完全的周期。 2、编写 MATLAB 文件,读取图像文件并对该函数进行正交变换:
相应的位置补 0。
������ = ������������������������ℎ������������������(������)
把傅里叶变换操作得到的结果中零频率成分移到矩阵的中心,这
有利于观察频谱。
2、离散余弦变换(DCT)
二维正 DCT 表示形式为:
������ ‒ 1������ ‒ 1
其中,A 是要旋转的图像,angle 是旋转的角度;method 是插值
方法,可以为 nearest、bilinear、bicublic 等;bbox 是指旋转
后的显示方式,有两种选择,一种是 crop,旋转后的图像效果跟
原图像一样大小,一种是 loose,旋转后的图像包含原图。
(二)图像的正交变换
(������ ≠ 0)
������
2������
������ = 0������ = 0
∑ ∑ [ ] 2������ ‒ 1������ ‒ 1
������(2������ + 1)������
������(0,������) =
������(������,������)cos
(������ ≠ 0)
1、离散傅里叶变换(DFT)
设 f(x,y)是在空间域上等间隔采样得到的 M×N 的二维离散
信号,x 和 y 是离散实变量,u 和 v 为离散频率变量,则二维离
散傅里叶变换对一般地定义为:
������ ‒ 1������ ‒ 1
∑ ∑ [ ( )] 1
������(������,������) = ������������
1、比例缩放 比例缩放是指将给定的图像在 x 轴方向按比例缩放 fx 倍,
在 y 轴方向按比例缩放 fy 倍,从而获得一副新的图像。 在 MATLAB 中,进行图像比例缩放的函数是 imresize,它的
常见调用方法如下: B=imresize(A,scale) B=imresize(A,[mrows ncols]) B=imresize(A,scale,method)
通过放大 0.2 倍(缩小)的图像可以看到因为丢点操作在显 示时大小不变导致图像模糊,像素分块明显。
在使用最近邻插值算法进行插值放大 8 倍后,因为每个原像 素原封不动地复制映射到对应的像素中,虽然在放大图像的同时 保留了所有的原图像信息,但是产生了锯齿现象。
在使用双线性变换法进行插值放大 8 倍的图像中,相较于上 一张更加平滑,但是图像变得有些模糊,细节方面不明显了。 2、图像旋转
(x=0,1,…,M-1;y=0,1,…,N-1)
傅里叶变换有快速算法 FFT,使用 FFT 可以快速提高傅里叶
变换的速度。MATLAB 工具箱中有常见的傅里叶变换函数和反变换
函数。
������ = ������������������2(������) ������ = ������������������2(������,������,������)
������������ ������������ ������(������,������)������������������ ‒ ������2������ +
������ ������
������ = 0������ = 0
(u=0,1,…,M-1;v=0,1,…,N-1)
������ ‒ 1������ ‒ 1
������ = ������������������������2(������) ������ = ������������������������2(������,������,������)
以正变换为例,X 是要进行二维傅里叶变换的矩阵,m、n 是返回
的变换矩阵 Y 的行数和列数,如果 m、n 大于 X 的维数,则在 Y
2、编写 MATLAB 文件,读取索引图像文件“cameraman.tif”,分 别执行以下操作: (1)顺时针旋转 45°;(注意角度正负) (2)使用 crop 方式显示旋转后的图像; (3)使用 loose 方式显示旋转后的图像; (4)在一幅图上显示原图、以及(1)~(3)的结果图像。 (二)图像的正交变换 1、编写 MATLAB 文件,生成一个矩形函数,并对该函数进行正交 变换, (1)一般离散 FT; (2)补零后的离散 FT; (3)频率原点平移后的 FT; (4)在一幅图上显示原图、以及(1)~(3)的结果图像。 2、编写 MATLAB 文件,读取图像文件“autumn.tif”,并对该函 数进行正交变换, (1)将彩色图像转变为灰度图像; (2)离散 DCT; (3)将幅值小于 10 的 DCT 系数置为零后进行反 DCT; (4)在一幅图上显示原图、以及(1)~(3)的结果图像。并给
Байду номын сангаас
������
2������
������ = 0������ = 0
������ ‒ 1������ ‒ 1
∑ ∑ [ ] [ ] 2
������(������,������) = ������
������(2������ + 1)������ ������(2������ + 1)������
������(������,������)cos
∑ ∑ [ ( )] 1
������(������,������) = ������������
������������ ������������ ������(������,������)������������������ ������2������ +
������ ������
������ = 0������ = 0
B=idct2(A) idct2 用于计算二维离散余弦逆变换,是 dct2 的逆变换,其调用 格式与 dct2 函数相同。 五、实验步骤 (一)图像的几何变换 1、编写 MATLAB 文件,读取索引图像文件“rice.png”,分别执 行以下操作: (1)放大 0.2 倍; (2)放大 8 倍,并用最近邻插值算法进行插值; (3)放大 8 倍,并用双线性变换法进行插值; (4)在一幅图上显示原图、以及(1)~(3)的结果图像。
相关文档
最新文档