实验二 图像变换

合集下载

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

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

数字图像处理实验二实验二图像的几何变换一.实验目的及要求掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其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表示按列翻转。

python图像变换实验心得

python图像变换实验心得

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

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

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

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

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

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

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

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

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

实验二 图像的灰度变换增强

实验二  图像的灰度变换增强

实验二 图像的灰度变换增强一、实验目的1、 理解数字图像处理中点运算的基本作用;2、 掌握对比度调整与灰度直方图均衡化的方法。

二、实验原理1、对比度调整如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换:[]n m y x f mM nN y x g +---=),(),(就可以实现这一要求。

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]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1](注意:灰度范围只能在0~1之间)。

例:I = imread('pout.tif');J = imadjust(I, [0.3 0.7], [ ]); %输出灰度范围为默认范围,即为[0, 1] imshow(I), figure, imshow(J)不使用imadjust函数,利用matlab语言直接编程也很容易实现灰度图像的对比度调整。

但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB的矩阵运算中要求运算变量为double型(双精度型)。

因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。

MATLAB中提供了这样的图像数据类型转换函数:im2double函数,其语法格式为:I2 = im2double(I1)该函数将I1的各元素除以255后转换为0~1内的双精度型数据。

数字图像处理实验二图像灰度变换

数字图像处理实验二图像灰度变换

实验二图像灰度变‎换实验一、实验目的熟悉亮度变‎换函数的使‎用熟悉灰度图‎像的直方图‎的表示;掌握图像增‎强的基本方‎法:灰度变换、直方图均衡‎;二、实验内容灰度线性变‎换、灰度直方图‎、直方图均衡‎处理;灰度变换是‎图像增强的‎一种重要手‎段,使图像对比‎度扩展,图像更加清‎晰,特征更加明‎显。

灰度级的直‎方图给出了‎一幅图像概‎貌的描述,通过修改灰‎度直方图来‎得到图像增‎强。

三、实验原理1.函数ima‎d just‎函数ima‎d just‎是对灰度图‎像进行亮度‎变换的基本‎命令,语法为:g = imadj‎u st(f, [low_i‎n high_‎in], [low_o‎u t high_‎out], gamma‎)将图像f中‎的亮度值(灰度值)映射到新图‎像g中,即将low‎_in至h‎i gh_i‎n 之间的值‎映射到lo‎w_out‎至high‎_out之‎间的值。

low_i‎n以下的灰‎度值映射为‎l ow_o ‎u t,high_‎in以上的‎灰度值映射‎为h igh‎_out,函数ima‎d just‎的矩阵[ ]内参数均指‎定在0和1‎之间,[low_i‎n high_‎i n]和[low_o‎u t high_‎ou t]使用空矩阵‎[ ]会得到默认‎值[0 1]。

若high‎_out小‎于l ow_‎ou t,则输出图像‎会反转。

参数gam‎m a指定了‎曲线(变换函数)的形状,若gamm‎a小于1,则映射被加‎权至更高(更亮)的输出值;若gamm‎a大于1,则映射被加‎权至更低(更暗)的输出值。

若省略了函‎数的参量g‎amma,则gamm‎a默认为1‎——即线性映射‎。

>>f = imrea‎d(‘filen‎ame’)>>imsho‎w(f)>>g1 = imadj‎u st(f, [0 1], [1 0]); %图像反转>>figur‎e, imsho‎w(g1) %figur‎e命令表示‎同时显示多‎个窗口>>g2 = imadj‎u st(f, [0.5 0.75], [0 1]);%将0.5至0.75之间的‎灰度级扩展‎到范围0和‎1之间>>figur‎e, imsho‎w(g2)>>g3 = imadj‎u st(f, [ ], [ ], 2) %使用gam‎m a值>>figur‎e, imsho‎w(g3)2.直方图处理‎与函数绘图‎图像的直方‎图定义为离‎散函数:h(r k) = n k绘制图像的‎直方图,函数imh‎i st,语法为:h = imhis‎t(f, b)f为输入图‎像,h为直方图‎h(r k),b是用于形‎成直方图的‎灰度级个数‎,若b省略,则默认值为‎256。

实验二 图像变换

实验二 图像变换

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

实验二、图像的几何变换 (2) 袁子鹏 网络11-2班 3110757219

实验二、图像的几何变换 (2) 袁子鹏 网络11-2班 3110757219

《数字图像处理》实验指导书 信息科学与工程学院 袁子鹏 网络11-2班 3110757219实验二、图像的几何变换一、 实验目的1掌握图像几何变换的原理;2 利用MATLAB 实现图像的平移、比例缩放和旋转变换。

二、 实验原理图像的几何变换包括:图像的空间平移、比例缩放、旋转、仿射变换和图像插值。

图像几何变换的实质:改变像素的空间位置,估算新空间位置上的像素值。

图像几何变换的一般表达式:[,][(,),(,)]u v X x y Y x y = ,其中,[,]u v 为变换后图像像素的笛卡尔坐标, [,]x y 为原始图像中像素的笛卡尔坐标。

这样就得到了原始图像与变换后图像的像素的对应关系。

平移变换:若图像像素点 (,)x y 平移到 00(,)x x y y ++,则变换函数为 0(,)u X x y x x ==+, 0(,)v Y x y y y ==+,写成矩阵表达式为:00x u x y v y ⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦其中,x 0和y 0分别为x 和y 的坐标平移量。

比例缩放:若图像坐标 (,)x y 缩放到( ,x y s s )倍,则变换函数为:00x y s u x s v y ⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 其中, ,x y s s 分别为x 和y 坐标的缩放因子,其大于1表示放大,小于1表示缩小。

旋转变换:将输入图像绕笛卡尔坐标系的原点逆时针旋转θ角度,则变换后图像坐标为: cos sin sin cos u x v y θ-θ⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥θθ⎣⎦⎣⎦⎣⎦三、 实验步骤1打开Matlab ,程序组中“work ”文件夹中应有待处理的图像文件;2编写函数,对图像进行平移变换,使图像平移横坐标偏移量x 和纵坐标偏移量y ; 3编写函数,对图像进行比例缩放,使图像缩放横坐标偏移量x 和纵坐标偏移量y ; 4 编写函数,对图像进行旋转变换,使图像旋转某个角度angle ;5 利用上面的函数,对一幅图像完成以下几何变换:先对x 方向缩小0.5倍,y 方向缩小0.25倍,然后平移[20,20],最后旋转90度。

实验二 图像变换

实验二 图像变换

实验二图像变换一,目的1)了解图像正变换和逆变换的原理2)理解图像变换系数的特点3)掌握常用图像的实现过程4)掌握图像的频谱分析方法5)了解图像变换在图像数据压缩等方面的应用二,实验条件1)微型计算机:INTEL 奔腾及更高2)MATLAB3)典型的灰度、彩色图像文件三,原理1)二维离散傅里叶变换、余弦变换、小波变换的正逆变换公式2)Matlab中的上述变换的实现函数3)讨论正交变换的应用四,实验内容及步骤1)变换1.变换DFT(二维离散傅里叶变换)2.DCT(二维余弦变换)3.DWT(二维离散小波变换)原始图像一层小波变换的四个分量小波逆变换后的图像2)频谱分析1.幅度谱原始图像离散傅里叶变换下的频谱图中心化的频谱图2.利用离散余弦变换(DCT)进行图像压缩(参考:基于DCT的图像压缩及Matlab 实现_白淑岩)首先要将输入的图像分解成10*10的块,然后对每个块进行二维离散变换,最后将变换得到的DCT 系数进行编码和传送,解码时对每个块进行二维DCT 反变换。

最后再将反变换后的块组合一幅图像,对于通常的图像来说,大多数的DCT 系数的值非常接近于0,如果舍弃这些接近于0的值,在重构图像时并不会带来图像画面质量的显著下降。

所以,利用DCT 进行图像压缩可以节约大量的存储空间。

压缩应该在最合理的近似元图像的情况下使用最少的系数[4]。

按照以上的方法,将一幅图像分成8*8的块进行压缩。

其实现方法如下:I=imread('test.jpg');I2=rgb2gray(I);I2=double(I2)/255;T = dctmtx(10);B=blkproc(I2,[10 10],'P1*x*P2',T,T');mask = [1 1 1 1 1 0 0 0 0 01 1 1 1 0 0 0 0 0 01 1 1 0 0 0 0 0 0 01 1 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0]B2 = blkproc(B,[10 10],'P1.*x',mask);I3 = blkproc(B2,[10 10],'P1*x*P2',T',T); figure;subplot(2,1,1),imshow( I2 );subplot(2,1,2),imshow( I3 );五,讨论与分析1)傅里叶变换是一种特殊的积分变换。

实验二 图像变换

实验二  图像变换

实验二图像变换(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)只包含了实数部分,将主要的信息放到较少的系数上去。

数字图像实验报告二图像的灰度变换与直方图均衡

数字图像实验报告二图像的灰度变换与直方图均衡

实验二图像的灰度变换与直方图均衡一、实验目的1.理解图像灰度变换与直方图均衡的定义;2.掌握图像灰度变换与直方图均衡化的方法;3.学会利用matlab编程实现灰度变换和直方图均衡的方法。

二、实验内容1. 利用matlab语言直接编程实现图像的对比度调整;2. 利用matlab语言编程实现图像的反转;3. 利用matlab语言直接编程实现图像的二值化;4. 利用matlab语言直接编程实现图像的直方图均衡化处理。

三、实验步骤(一)利用matlab语言直接编程实现图像的对比度调整实验代码如下:A=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告二通信五班韩奇20110803520\lena.jpg');I=double(A);J=I*0.5+40;A1=uint8(J);figure(1);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=I*1+40;A1=uint8(J);figure(2);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=I*3+40;A1=uint8(J);figure(3);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=exp(I);A1=uint8(J);figure(4);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1); 生成图像如下:从图中可以看出,第一幅图相对于原图的对比度降低了,第二幅图相对于原图对比度提高了40个灰度级,第三幅图对比度提高太多,效果反而不好。

在三幅图中,第二幅图视觉效果最好,对比度明显又不至于太亮。

第四幅图是指数灰度变换。

(二)利用matlab语言编程实现图像的反转实验代码如下:A=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告二通信五班韩奇20110803520\lena.jpg');E=imadjust(A,[0.35 0.65],[1 0]);figure;imshow(E);生成图像如下:从图中可以看出,原来亮的部分经过反转之后变暗,暗的部分经过反转变亮。

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

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

实验报告实验名称:图像处理姓名:刘强班级:电信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. 了解图像变换的基本概念和原理;2. 掌握图像变换的常用算法和方法;3. 利用编程语言实现图像变换,并观察结果。

三、实验步骤1. 实验准备:a. 下载并安装图像处理软件;b. 准备一组测试图像。

2. 图像旋转变换:a. 打开图像处理软件,选择一张测试图像;b. 在软件中选择旋转变换功能,并设置旋转角度;c. 运行程序,观察图像旋转结果。

3. 图像缩放变换:a. 选择另一张测试图像;b. 在软件中选择缩放变换功能,并设置缩放比例;c. 运行程序,观察图像缩放结果。

4. 图像镜像变换:a. 选择第三张测试图像;b. 在软件中选择镜像变换功能,并选择水平或垂直镜像;c. 运行程序,观察图像镜像结果。

5. 图像变换算法比较:a. 将同一张测试图像分别使用不同的图像变换算法进行处理;b. 观察不同算法处理后的图像效果,并比较它们的差异。

四、实验结果与分析通过实验,我们成功实现了图像的旋转、缩放和镜像变换,并获得了相应的结果。

在图像旋转变换中,我们观察到图像按照指定角度旋转后,保持了原始图像的形状和内容,但位置发生了变化。

在图像缩放变换中,我们发现图像按照设定的比例进行缩放后,尺寸发生了变化,但整体结构和细节保持了一定的相似性。

在图像镜像变换中,我们发现图像在水平或垂直方向上翻转后,整体形状和内容发生了镜像对称的变化。

通过比较不同的图像变换算法,我们发现不同算法对于同一张图像可能会产生不同的效果。

这是因为不同算法对图像的处理方式和策略不同,导致最终的结果也有所差异。

因此,在实际应用中,我们需要根据具体需求选择适合的图像变换算法,以达到最佳的效果。

五、实验总结本实验通过实际操作,深入了解了图像变换的原理和应用。

实验2b 图像的灰度变换

实验2b  图像的灰度变换

实验2b 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。

二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。

三、实验报告要求:写出每步处理的命令,并提交原图像和处理后的图像。

四、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。

我们可以分别使用MATLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。

为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。

如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

代数运算的结果很容易超出数据类型允许的范围。

图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。

五、实验步骤:1、仔细阅读imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply和imsubtract的帮助文件(help imabsdiff),并练习相关函数的使用。

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

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

计算机科学与工程学院实验(二)实验名称图像几何变换软件环境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初始化右侧显示框。

实验二数字图像变换

实验二数字图像变换
newImage2=blkproc(imageDCT,[8 8],'P1*(x.*P2)*P3',dctm',M10,dctm);
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)));

实验报告 图像变换

实验报告 图像变换

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

通过对图像进行变换,可以改变图像的外观、形状和颜色等特征,从而实现图像处理、图像增强和图像合成等应用。

本实验旨在探索图像变换的原理和方法,并通过实际操作,深入理解图像变换的过程和效果。

一、图像变换的基本概念图像变换是指对图像进行一系列操作,从而改变图像的外观和特征。

常见的图像变换包括缩放、旋转、平移、翻转、镜像和灰度变换等。

这些变换可以通过改变图像的像素值、坐标位置和颜色等信息来实现。

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

在实际应用中,常常需要将图像缩放到特定的尺寸,以适应不同的显示设备或满足特定的需求。

图像缩放可以通过改变图像的像素数量和像素间距来实现。

常用的图像缩放算法有最近邻插值、双线性插值和双三次插值等。

三、图像旋转图像旋转是指改变图像的方向和角度。

在实际应用中,常常需要将图像旋转到特定的角度,以便更好地观察或处理图像。

图像旋转可以通过改变图像的像素位置和坐标系来实现。

常用的图像旋转算法有最邻近插值法、双线性插值法和双三次插值法等。

四、图像平移图像平移是指改变图像的位置和偏移量。

在实际应用中,常常需要将图像平移到特定的位置,以便更好地与其他图像进行配准或合成。

图像平移可以通过改变图像的像素位置和坐标值来实现。

常用的图像平移算法有最邻近插值法、双线性插值法和双三次插值法等。

五、图像翻转图像翻转是指改变图像的方向和镜像。

在实际应用中,常常需要将图像进行水平翻转或垂直翻转,以便更好地观察或处理图像。

图像翻转可以通过改变图像的像素位置和坐标系来实现。

常用的图像翻转算法有最邻近插值法、双线性插值法和双三次插值法等。

六、图像灰度变换图像灰度变换是指改变图像的亮度和对比度。

在实际应用中,常常需要调整图像的亮度和对比度,以便更好地显示或分析图像。

图像灰度变换可以通过改变图像的像素值和灰度级来实现。

常用的图像灰度变换算法有线性变换、非线性变换和直方图均衡化等。

实验二

实验二

实验二、图像几何变换一、实验目的1结合实例学习如何在视频显示程序中增加图像处理算法;2理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;二、实验原理1 初始坐标为(x , y )的点经过平移(0x ,0y ),坐标变为('x ,'y ),两点之间的关系为:⎩⎨⎧+=+=00''y y y x x x ,以矩阵形式表示为:⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡110 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 记录和整理实验报告四、实验仪器1计算机;2 MA TLAB程序;3 SEED-DTK_CPM642实验箱4记录用的笔、纸。

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

实验二图像变换
一.实验目的及要求
1.利用MATLAB研究数字图像的傅立叶变换、离散余弦变换等频域变换算法;
2.掌握MATLAB频域变换函数的使用方法;
3.了频域变换的基本应用。

二、实验内容
1.傅立叶变换
研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

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

(1) 简单人工二值图像
clear all, close all
f = zeros(50,50);
f(15:35,23:28) = 1;
figure(1), imshow(f,'notruesize')
F = fft2(f,128,128);
F1 = fftshift(F);
figure(2), imshow(log(abs(F1)), [-1 5]); colormap(gray); colorbar
figure(3), mesh(1:128,1:128, abs(F1)); colormap(gray); colorbar
F2 = fft2(imrotate(f,90),128,128);
F3 = fftshift(F2);
figure(4), imshow(imrotate(f,90),'notruesize')
figure(5), imshow(log(abs(F3)), [-1 5]); colormap(gray); colorbar
figure(6), mesh(1:128,1:128, abs(F3)); colormap(gray); colorbar
(2)实际图像傅立叶变换
选取一副图像(rice.png),进行离散傅里叶变换,再对其进行一定的角度旋转,进行傅里叶变换.
2.离散余弦变换(DCT)
(1) 对cameraman.tif图像的离散余弦变换及逆变换重建
(2)对lena.jpg进行离散余弦变换,并对其进行压缩解压,观察其结果;
三、实验设备
1.PIII以上微机;
2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉实验中涉及的有关函数。

五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;
3.打印出所编写的实验程序。

4.写出本实验的心得体会及意见。

六、思考题
1、将一副图进行DFT变换,得到其傅里叶频谱图,在对原图像进行一定角度的旋转,得到的频谱图与原图像的频谱进行比较,以及原图像与其傅里叶谱存在何种角度关系,说出符合那种性质。

2、将一副图进行离散余弦变换,得到其频谱图,观察其频谱图有何特点,再经过离散余弦反变换得到还原图像,比较与原图有何差别。

3、将一副图进行离散余弦变换,再进行压缩解压,观察不同压缩DCT系数,已经解压后图像有何变化。

相关文档
最新文档