图像变换实验报告
- 格式:pdf
- 大小:503.66 KB
- 文档页数:12
课程: 数字图像处理实验日期: 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. 了解图像变换的基本概念和原理;2. 掌握图像变换的常用算法和方法;3. 利用编程语言实现图像变换,并观察结果。
三、实验步骤1. 实验准备:a. 下载并安装图像处理软件;b. 准备一组测试图像。
2. 图像旋转变换:a. 打开图像处理软件,选择一张测试图像;b. 在软件中选择旋转变换功能,并设置旋转角度;c. 运行程序,观察图像旋转结果。
3. 图像缩放变换:a. 选择另一张测试图像;b. 在软件中选择缩放变换功能,并设置缩放比例;c. 运行程序,观察图像缩放结果。
4. 图像镜像变换:a. 选择第三张测试图像;b. 在软件中选择镜像变换功能,并选择水平或垂直镜像;c. 运行程序,观察图像镜像结果。
5. 图像变换算法比较:a. 将同一张测试图像分别使用不同的图像变换算法进行处理;b. 观察不同算法处理后的图像效果,并比较它们的差异。
四、实验结果与分析通过实验,我们成功实现了图像的旋转、缩放和镜像变换,并获得了相应的结果。
在图像旋转变换中,我们观察到图像按照指定角度旋转后,保持了原始图像的形状和内容,但位置发生了变化。
在图像缩放变换中,我们发现图像按照设定的比例进行缩放后,尺寸发生了变化,但整体结构和细节保持了一定的相似性。
在图像镜像变换中,我们发现图像在水平或垂直方向上翻转后,整体形状和内容发生了镜像对称的变化。
通过比较不同的图像变换算法,我们发现不同算法对于同一张图像可能会产生不同的效果。
这是因为不同算法对图像的处理方式和策略不同,导致最终的结果也有所差异。
因此,在实际应用中,我们需要根据具体需求选择适合的图像变换算法,以达到最佳的效果。
五、实验总结本实验通过实际操作,深入了解了图像变换的原理和应用。
实验2a 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。
二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。
三、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。
我们可以分别使用MA TLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。
为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
代数运算的结果很容易超出数据类型允许的范围。
图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。
2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。
对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。
需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。
1、图像的读取函数imread()用来读取图像,把图像数据读出以后,可以赋给一个变量。
例如,在命令窗口中输入命令a=imread(‘box.bmp’)%其中box.bmp在当前路径下执行命令后,在命令窗口显示出许多数据,这些数据就是用来表示图像各个位置点颜色的。
使用命令s=size(a)则有s= 27 28说明图像的高位27像素、宽为28像素。
实验指导书实验一图像变换一、实验目的与要求:目的:通过本次实验,学生可以掌握MA TLAB的基本矩阵操作、图像的读取、显示和保存的方法,掌握图像频域变换的方法,包括DFT变换和DCT变换方法的实现。
要求:上机运行,编程调试通过。
二、实验内容:1、MATLAB简介1.1主要用途及特点主要用途:算法研究主要特点:语句功能强大;不能生成可执行文件。
1.2 MA TLAB工作环境1.2.1 Matlab桌面桌面包括5个子窗口:命令窗口、工作空间窗口、当前目录窗口、历史命令窗口、一个或多个图形窗口(仅在用户显示图形式出现)。
命令窗口是用户在提示符(>>)处键入MA TLAB命令和表达式的地方,也是显示那些命令输出的地方。
工作空间窗口显示对话中创建的变量和它们的某些信息。
当前目录窗口显示当前目录的内容(即路径)。
历史命令窗口包含用户已在命令窗口中输入的命令的纪录。
1.2.2使用MATLAB编辑器创建M文件1.2.3获得帮助(1)help <函数名>(2)lookfor <关键词>2、数字图像的读取、显示、保存、数据类型和图像类型、数据类型间的转换、图像类型间的转换2.1图像的读取语法:imread ( ‘filename’ )说明:读取图像语法:[M, N]=size ( ‘filename’ )说明:给出一幅图像的行数和列数2.2图像的显示语法:imshow ( f, G)imshow (f, [low high])imshow (f, [ ])说明:G是显示该图像的灰度级数;小于或等于low的值都显示为黑色,大于或等于high的值都显示为白色。
实验三、图像的频域变换一、 实验目的1了解图像变换的意义和手段;2熟悉傅里叶变换的基本性质;3热练掌握FFT 方法及应用;4通过实验了解二维频谱的分布特点;5通过本实验掌握利用MA TLAB 编程实现数字图像的傅立叶变换及滤波锐化和复原处理;6 了解理想、巴特沃兹、高斯等不同滤波器的结构及滤波效果。
二、 实验原理1应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2傅立叶(Fourier )变换的定义对于二维信号,二维Fourier 变换定义为:⎰⎰∞∞-∞∞-+-=dy dx e y x f v u F vy ux j )(2),(),(π ⎰⎰∞∞-∞∞-+=dv du e v u F y x f vy ux j )(2),(),(π θθθsin cos j e j += 二维离散傅立叶变换为:1,...,2,1,0,1,...,2,1,0for ),(1),(101)//(2-=-==∑∑-=-=+-N v M u e y x f MN v u F M x N y N vy M ux j π 1,...,2,1,0,1,...,2,1,0for ),(),(1010)//(2-=-==∑∑-=-=+N y M x ev u F y x f M u N v N vy M ux j π图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
3利用MA TLAB 软件实现数字图像傅立叶变换的程序: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); %显示原图像的频谱三、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
图像几何变换实验报告图像几何变换实验报告引言:图像几何变换是计算机视觉领域的重要研究方向之一。
通过对图像进行旋转、缩放、平移等变换操作,可以改变图像的形状、大小和位置,从而实现图像处理和分析的目的。
本实验旨在通过编程实现常见的图像几何变换算法,并对其效果进行评估和分析。
一、图像旋转变换图像旋转变换是指将图像按照一定的角度进行旋转操作。
在实验中,我们使用了旋转矩阵来实现图像的旋转。
通过调整旋转角度,我们可以观察到图像在不同旋转角度下的变化。
实验结果显示,当旋转角度较小时,图像的形状基本保持不变,但会出现一定程度的畸变。
随着旋转角度的增加,图像的形状逐渐发生变化,出现明显的扭曲和形变现象。
二、图像缩放变换图像缩放变换是指改变图像的尺寸大小。
在实验中,我们通过调整缩放系数来实现图像的缩放操作。
实验结果表明,当缩放系数小于1时,图像会变小,细节信息会丢失;而当缩放系数大于1时,图像会变大,但可能会出现像素过度拉伸的情况。
因此,在进行图像缩放时,需要根据实际需求选择合适的缩放系数,以保证图像的质量和清晰度。
三、图像平移变换图像平移变换是指将图像沿着水平或垂直方向进行移动操作。
在实验中,我们通过调整平移距离来实现图像的平移。
实验结果显示,当平移距离较小时,图像的位置变化不明显;而当平移距离较大时,图像的位置会发生明显的偏移。
因此,在进行图像平移时,需要根据实际需求选择合适的平移距离,以确保图像的位置调整符合预期。
四、图像仿射变换图像仿射变换是指通过线性变换和平移变换来改变图像的形状、大小和位置。
在实验中,我们通过调整仿射变换矩阵的参数来实现图像的仿射变换。
实验结果表明,仿射变换可以实现图像的旋转、缩放和平移等多种操作,且变换后的图像形状基本保持不变。
然而,当仿射变换矩阵的参数设置不当时,可能会导致图像的形变和失真现象。
五、图像透视变换图像透视变换是指通过透视投影将图像从一个平面映射到另一个平面。
在实验中,我们通过调整透视变换矩阵的参数来实现图像的透视变换。
实验1 图像格式转换实验报告学号:12224506姓名:陈振辉班级:5班一、实验目的掌握两种以上图像的格式,重点掌握BMP图像格式。
二、实验原理:1、JPEG文件的解码过程。
①.读入文件的相关信息按照上述的JPEG文件数据存储方式,把要解码的文件的相关信息一一读出,为接下来的解码工作做好准备。
参考方法是,设计一系列的结构体对应各个标记,并存储标记内表示的信息。
其中图像长宽、多个量化表和哈夫曼表、水平/垂直采样因子等多项信息比较重要。
以下给出读取过程中的两个问题。
1)整个文件的大体结构JFIF格式的JPEG文件(*.jpg)的一般顺序为:SOI(0xFFD8)APP0(0xFFE0)[APPn(0xFFEn)]可选DQT(0xFFDB)SOF0(0xFFC0)DHT(0xFFC4)SOS(0xFFDA)压缩数据EOI(0xFFD9)2)字的高低位问题JPEG文件格式中,一个字(16位)的存储使用的是 Motorola 格式, 而不是 Intel 格式。
也就是说, 一个字的高字节(高8位)在数据流的前面, 低字节(低8位)在数据流的后面,与平时习惯的Intel格式不一样。
.3)读出哈夫曼表数据在标记段DHT内,包含了一个或者多个的哈夫曼表。
不同位数的码字数量JPEG文件的哈夫曼编码只能是1~16位。
这个字段的16个字节分别表示1~16位的编码码字在哈夫曼树中的个数。
编码内容这个字段记录了哈夫曼树中各个叶子结点的权。
所以,上一字段(不同位数的码字数量)的16个数值之和就应该是本字段的长度,也就是哈夫曼树中叶子结点个数。
4)建立哈夫曼树读出哈夫曼表的数据后,就要建立哈夫曼树。
②.初步了解图像数据流的结构a) 在图片像素数据流中,信息可以被分为一段接一段的最小编码单元(Minimum CodedUnit,MCU)数据流。
所谓MCU,是图像中一个正方矩阵像素的数据。
矩阵的大小是这样确定的:查阅标记SOF0,可以得到图像不同颜色分量的采样因子,即Y、Cr、Cb 三个分量各自的水平采样因子和垂直采样因子。