实验5:数字图像处理(图像放大与缩小)

合集下载

matlab 数字图像处理实验报告(五份)

matlab 数字图像处理实验报告(五份)

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。

二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\624baf9dbcc4910a.jpg');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'IMG_20170929_130307.jpg', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 196Original Image2.给定函数的累积直方图。

图像放大缩小的原理和应用

图像放大缩小的原理和应用

图像放大缩小的原理和应用1. 原理图像放大缩小是数字图像处理中的一种基础操作,其原理是通过改变图像像素的尺寸来实现。

在图像放大时,通常采用插值算法来填充空白像素;而在图像缩小时,通常采用像素平均或取样的方式来减少像素。

1.1 图像放大原理图像放大的主要原理是通过插值算法来增加图像的像素数量,从而增大图像的尺寸。

插值算法可以根据原图像的像素值,在新的像素位置上生成合适的像素值。

常用的插值算法包括最近邻插值、双线性插值和双三次插值等。

最近邻插值是一种简单的插值算法,它通过找到离新像素位置最近的像素值来进行插值。

这种算法简单快速,但会导致图像边缘的锯齿效应。

双线性插值是一种更精确的插值算法,它考虑了新像素位置附近的像素值,并进行线性插值计算。

这种算法可以有效地减少锯齿效应,但对于像素边缘仍可能存在模糊问题。

双三次插值是一种更高级的插值算法,它在双线性插值的基础上添加了更多的像素信息,通过曲线拟合来生成更精确的像素值。

这种算法可以进一步减少锯齿效应和模糊问题,但计算复杂度也相应增加。

1.2 图像缩小原理图像缩小的主要原理是通过减少图像的像素数量来缩小图像的尺寸。

常用的缩小算法包括像素平均和取样算法。

像素平均算法是一种简单的缩小算法,它将原图像中的多个像素的 RGB 值取平均,生成新的像素值。

这种算法简单快速,但会导致图像细节丢失。

取样算法是一种更精确的缩小算法,它通过从原图像中选择几个有代表性的像素进行采样,并生成新的像素值。

这种算法可以保留更多的图像细节,但计算复杂度也相应增加。

2. 应用图像放大缩小在许多领域都有广泛的应用,下面列举了几个常见的应用场景:•数字摄影:在数字摄影中,图像放大可以用于增加图像的分辨率,从而提高图像的清晰度和细节呈现。

•医学影像:在医学影像领域,图像放大可以用于放大细胞、组织或病变区域,帮助医生进行更精确的诊断。

•图像处理:在图像处理领域,图像缩小可以用于生成缩略图,帮助用户快速浏览和索引大量图像;图像放大可以用于图像重建和增强,帮助改善图像质量。

c语言数字图像处理(二):图片放大与缩小-双线性内插法

c语言数字图像处理(二):图片放大与缩小-双线性内插法

c语⾔数字图像处理(⼆):图⽚放⼤与缩⼩-双线性内插法图像内插假设⼀幅⼤⼩为500 * 500的图像扩⼤1.5倍到750 * 750,创建⼀个750 * 750 的⽹格,使其与原图像间隔相同,然后缩⼩⾄原图⼤⼩,在原图中寻找最接近的像素(或周围的像素)进⾏赋值,最后再将结果放⼤最邻近内插法寻找最近的像素赋值双线性内插法v(x,y) = ax + by + cxy + d双线性内插法参数计算已知Q11, Q12, Q21, Q22,要插值的点为P点,⾸先在x轴上,对R1,R2两个点进⾏插值然后根据R1和R2对P点进⾏插值化简得对于边界值的处理,若x1 < 0 ,则直接令f(Q11), f(Q12) = 0处理结果原图扩⼤为6000 * 4000缩⼩为1000 * 500下⾯为代码实现的主要部分int is_in_array(short x, short y, short height, short width){if (x >= 0 && x < width && y >= 0 && y < height)return1;elsereturn0;}void bilinera_interpolation(short** in_array, short height, short width, short** out_array, short out_height, short out_width){double h_times = (double)out_height / (double)height,w_times = (double)out_width / (double)width;short x1, y1, x2, y2, f11, f12, f21, f22;double x, y;for (int i = 0; i < out_height; i++){for (int j = 0; j < out_width; j++){x = j / w_times;y = i / h_times;x1 = (short)(x - 1);x2 = (short)(x + 1);y1 = (short)(y + 1);y2 = (short)(y - 1);f11 = is_in_array(x1, y1, height, width) ? in_array[y1][x1] : 0; f12 = is_in_array(x1, y2, height, width) ? in_array[y2][x1] : 0; f21 = is_in_array(x2, y1, height, width) ? in_array[y1][x2] : 0; f22 = is_in_array(x2, y2, height, width) ? in_array[y2][x2] : 0; out_array[i][j] = (short)(((f11 * (x2 - x) * (y2 - y)) +(f21 * (x - x1) * (y2 - y)) +(f12 * (x2 - x) * (y - y1)) +(f22 * (x - x1) * (y - y1))) / ((x2 - x1) * (y2 - y1))); }}}。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下: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 调色板 DIB Pixels 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 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

第6章 数字图像的放大缩小及旋转 数字图像处理课件

第6章 数字图像的放大缩小及旋转 数字图像处理课件

3. 整数优化(减少浮点运算)
LOGO
习题六
可以将数字图像缩小后保存,使用时再放大吗?为什么? 为什么不能使用式(6-1)进行直接计算新图像?而要使用式(6-2 )? 为什么图像旋转270º、180º、90º要特殊处理?而不是和其他度数 一样处理? 6.2.1和6.2.2两种双线性插值的编程方法有细小的区别,体会这种 细小的区别,并理解实际编程时可以根据需要调整程序算法。
因此原图像中每一个像素被复制成4个像素放到新的放大图像中就是图像放大2倍的方法logo61缩放数字图像的实现方法imageij61newimageijimageiyjy62logo61缩放数字图像的实现方法图62式61导致错误的缩放结果logo62缩放和旋转的编程实训设新点邻近的四个点像素值分别为为papbpcpdpdimagey1x1
y=(int)floor(i*h/(double)h1);
x=(int)floor(j*w/(double)w1);
则:
pa=image[y][x];
pb=image[y][x+1];
பைடு நூலகம்
pc=image[y+1][x];
pd=image[y+1][x+1];
LOGO
double cx(与右邻点的x坐标之差)
double cy(与下邻点的y坐标之差)
cx=1-j*w%w1/ (double)w1;
cy=1-i*h%h1/ (double)h1;
则由插值公式得目标图像的像素值为:
image[i][j]=(int) ( cx*cy*pa+cy*(1-cx)*pb+ (1cy)*cx*pc
+ (1-cx)*(1-cy)*pd+0.5 )

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

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

《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。

在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。

首先,我们进行了图像的读取和显示实验。

通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。

这为我们后续的实验奠定了基础。

同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。

这使我们能够更好地理解后续实验中的算法和操作。

接下来,我们进行了图像的灰度化实验。

灰度化是将彩色图像转换为灰度图像的过程。

在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。

通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。

随后,我们进行了图像的直方图均衡化实验。

直方图均衡化是一种用于增强图像对比度的方法。

在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。

通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。

在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。

滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。

在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。

通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。

此外,我们还进行了图像的边缘检测实验。

边缘检测是一种用于提取图像边缘信息的方法。

在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。

通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。

最后,我们进行了图像的压缩实验。

图像压缩是一种将图像数据进行压缩以减小文件大小的方法。

数字图像处理图像翻转,平移,缩放

数字图像处理图像翻转,平移,缩放

数字图像处理图像翻转,平移,缩放第一篇:数字图像处理图像翻转,平移,缩放学号:Xb09680112班级:09通信工程(1)姓名:项德亮实验一图像几何变换一.实验目的1.熟悉MATLAB中的图像处理工具箱。

2.熟悉MATLAB中常用的图像处理函数。

3.掌握图像平移、图像旋转和图像缩放的基本原理与实现方法。

二.实验设备微机三.预习要求1.认真复习课件里的内容,并熟悉教材中第2章的内容。

2.了解imread()、imshow()、imhist()等函数的使用方法。

四.实验内容及步骤实验内容:1.熟悉MATLAB图像处理工具箱的功能及常用的图像处理函数。

2.打开“Image Processing”工具箱里的Demos,查看“Spatial Transformation”中的第一个例子“Creating a Gallery of Transformed Images”,把所有源代码拷到一个m文件里运行,查看运行结果,给源代码添加注释。

然后再改变变换矩阵T里面的参数,再查看运行结果。

把改变参数后(每位同学可以任意改变)的m文件保存为SpatialTransformation.m。

3.编程实现图像的平移,平移量应该可调(即用一个向量或两个标量保存平移量),并显示对图像“view”的处理结果。

%平移clear;%读入图像imori=imread('view.bmp','bmp');imres=imori;[m,n]=size(imo ri);tx=60;ty=-40;%平移 for i=1:mfor j=1:nif tximres(i,j)=imori(i,j);elseimres(i,j)=255;end end end imshow(imres)%显示结果%显示结果4.编程实现图像的缩放,缩放系数可调,分别用两个变量或一个向量保存水平和垂直方向的缩放系数,并显示对图像“view”的处理结果。

数字图像处理实验(南通大学)

数字图像处理实验(南通大学)

《数字图像处理》实验指导书南通大学电子信息学院通信与信息工程教研室2008.9实验目的和要求通过实验,学生在所学的图像处理理论指导下,能应用图像处理硬、软件和一种算法语言编写有关程序,熟悉Matlab等图像处理软件,巩固和掌握图像数据输入与输出、图像格式转换、图像增强与图像变换等基本处理技术,提高实际动手能力。

为进一步应用图像处理解决实际问题奠定基础.实验内容和形式1.应用MATLAB语言编写一幅灰度图像直方图统计程序、图像放大和缩小以及旋转剪切的程序,并掌握图像读写和运算的一些基本的方法2.应用MATLAB等工具进行图像图像去噪和锐化处理,包括:常见噪声的产生、运用不同滤波方法(包括均值滤波和中值滤波等)对图像去噪;运用不同的算子对图像进行锐化,比较结果;掌握和巩固所学内容3.掌握图像的傅立叶和DCT等变换的原理, 运用Matlab等工具对图像进行变换,分析变换前后图像信息的对应关系;对图像进行压缩编码,分析压缩的效果。

按计划共6学时完成实验内容。

实验内容实验一:图像的基本操作一、实验目的:1、掌握图像读写和运算的一些基本的方法;2、掌握图像放大和缩小的基本方法;3、掌握灰度直方图的概念及其计算方法;4、熟练掌握直方图均衡化的计算过程;5、利用MATLAB程序进行图像的基本操作。

二、实验步骤:1.读取文件rice.tif和cameraman.tif的图像数据,显示图像。

读取文件的信息,说明什么含义。

写出rice.tif在第一行到第10行、第一列到第10列之间的数据。

MATLAB函数:imread/imshow/imfinfo举例:A=imread('rice.tif');imshow(A);A=imread('psa.png');I=rgb2gray(A);imshow(I);A=imfinfo ('psa.png')A =Filename: 'C:\Users\Administrator\Desktop\psa.png' FileModDate: '07-Oct-2016 19:13:18'FileSize: 168625Format: 'png'FormatVersion: []Width: 396Height: 450BitDepth: 24ColorType: 'truecolor'FormatSignature: [137 80 78 71 13 10 26 10]Colormap: []Histogram: []InterlaceType: 'none'Transparency: 'alpha'SimpleTransparencyData: []BackgroundColor: []RenderingIntent: []Chromaticities: []Gamma: 0.4545XResolution: 3780YResolution: 3780ResolutionUnit: 'meter'XOffset: []YOffset: []OffsetUnit: []SignificantBits: []ImageModTime: '21 Jan 2009 23:23:48 +0000'Title: []Author: []Description: []Copyright: []CreationTime: []Software: []Disclaimer: []Warning: []Source: []Comment: []OtherText: []255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 255255 255 255 255 255 255 255 255 255 2552.将rice.tif和cameraman.tif两副图像相加、相减,或者减去一个常数,显示并保存处理后的图像。

数字图像处理实验.doc

数字图像处理实验.doc

成绩实验论文题目:图像的基本运算学生姓名:程园学生学号:1114020206 系别:电气信息工程学院专业:电子信息工程年级:11级任课教师:沈晓波电气信息工程学院制淮南师范学院电气信息工程学院电子信息工程(2)班专业程园实验论文图像的基本运算学生:程园任课教师:沈晓波电气信息工程学院:电子信息工程专业1.实验对象:自己头像/tif图像汇总中任选/其他图像。

2.实验任务:2.1实现对图像的点运算(加减乘除)具体参数自行规定。

2.2实现对图像的逻辑运算(与或非)。

2.3实现对单幅图像的空间运算(放大、缩小、旋转、平移、X镜像、Y 镜像),具体参数自行规定。

2.4简单应用:将自己的头像上添加:“姓名第一次作品”,字体规格不限,输出新的图像。

3.实验原理:3.1理论基础:本次实验是基于数字图像处理及MATLAB实现这本书来实现的。

首先对实验对象进行点运算,实际上就是对图像的每个像素点的灰度值按一定的映射关系进行运算,得到新图像的过程。

此次实验是采用线性点运算的,可以以下用线性方程来描述,即s=ar+b其中,r为输入点的灰度值,s为相应输出点的灰度值。

(1)a=1,b=0,则只需将输入图像复制到输出图像即可。

若a=1,而b≠0,则操作结束仅使所有像素的灰度值上移或下移,其效第1 页果是使整个图像在显示时更亮或更暗。

(2)如果a>1,则输出图像对比度增大。

(3)如果a<1,则输出图像对比度降低。

(4)如果A<0,即a为负值,则暗区域将变亮,亮区域将变暗,点运算完成了图像的求补。

加法运算通常用于平均值降噪等多种场合。

图像的相加一般用于同一场景的多幅图像求平均,以便于有效降低加性噪声。

此次实验中我们是对图像加上了一个常数,来改变图像的效果。

使用的函数是imadd。

减法运算常用于检测变化及运动的物体,图像相减运算又称差分运算。

差值图像的信息提供了图像间的差值信息,能用于指导动态检测、运动目标的检测盒跟踪、图像背景的消除及目标识别等功能。

《数字图像处理》实验教案

《数字图像处理》实验教案

《数字图像处理》实验教案一、实验目的1. 使学生了解和掌握数字图像处理的基本概念和基本算法。

2. 培养学生运用数字图像处理技术解决实际问题的能力。

3. 提高学生使用相关软件工具进行数字图像处理操作的技能。

二、实验内容1. 图像读取与显示:学习如何使用相关软件工具读取和显示数字图像。

2. 图像基本操作:学习图像的旋转、缩放、翻转等基本操作。

3. 图像滤波:学习使用不同类型的滤波器进行图像去噪和增强。

4. 图像分割:学习利用阈值分割、区域增长等方法对图像进行分割。

5. 图像特征提取:学习提取图像的边缘、角点等特征信息。

三、实验环境1. 操作系统:Windows或Linux。

2. 编程语言:Python或MATLAB。

3. 图像处理软件:OpenCV、ImageJ或MATLAB。

四、实验步骤1. 打开相关软件工具,导入图像。

2. 学习并实践图像的基本操作,如旋转、缩放、翻转等。

3. 学习并实践图像滤波算法,如均值滤波、中值滤波等。

4. 学习并实践图像分割算法,如全局阈值分割、局部阈值分割等。

5. 学习并实践图像特征提取算法,如Canny边缘检测算法等。

五、实验要求1. 每位学生需独立完成实验,并在实验报告中详细描述实验过程和结果。

2. 实验报告需包括实验目的、实验内容、实验步骤、实验结果和实验总结。

3. 实验结果要求清晰显示每个步骤的操作和效果。

4. 实验总结部分需对本次实验的学习内容进行归纳和总结,并提出改进意见。

六、实验注意事项1. 实验前请确保掌握相关软件工具的基本使用方法。

3. 在进行图像操作时,请尽量使用向量或数组进行处理,避免使用低效的循环结构。

4. 实验过程中如需保存中间结果,请使用合适的文件格式,如PNG、JPG等。

5. 请合理安排实验时间,确保实验报告的质量和按时提交。

七、实验评价1. 实验报告的评价:评价学生的实验报告内容是否完整、实验结果是否清晰、实验总结是否到位。

2. 实验操作的评价:评价学生在实验过程中对图像处理算法的理解和运用能力。

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

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

实验三图像的几何变换一.实验目的及要求掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其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函数的使用方法。

电子专业——数字图像处理实验

电子专业——数字图像处理实验

数字图像处理实验讲义(Digital Image Processing)实验一图像的显示与格式变换一、实验目的了解Matlab软件/语言,学会使用Matlab的图像处理工具箱(Image Processing Toolbox),使学生初步具备使用本软件处理图像信息的能力,并能够利用Matlab完成本课程规定的其他实验和作业。

熟悉常用的图像文件格式与格式转换,熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色),熟悉图像矩阵的格式转换。

二、实验要求学生应当基本掌握Matlab的操作,掌握Matlab图像处理工具箱中最常用的函数的用法。

练习图像读写命令imread和imwrite并进行图像文件格式间的转换。

三、实验设备与软件(1)硬件:学生每人一台PC机。

(2)软件:Matlab软件,包括图像处理工具箱;实验所需的图片。

四、实验内容与步骤(1)学会Matlab的基本操作;(2)使用read函数读入图像rice.png,pout.tif;(3)使用figure函数创建窗口;(4)使用image/imshow函数显示图像;(5)使用colorbar函数在图像的右侧显示图像的亮度条。

五、思考题(1)简述Matlab的特点。

(2)Matlab可以支持哪些图像文件格式?(3)说明函数imread的用途格式以及各种格式所得到图像的性质。

(4)用I=imread(‘rice.png’)命令得到的图像能否进行算术运算?六、实验报告要求描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,须包括原始图像及其计算/处理后的图像。

七、实验图像rice.png pout.tif实验一步骤与讲解1.matlab 7.0自带测试图片目录D:\MATLAB7\toolbox\images\imdemos (也可能安装在C盘)2.测试图片格式各有不同,rice.png , pout.tif,cameraman.tif,等。

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

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

数字图像处理实验报告实验七图像的几何变换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、实验小结对图像进行垂直镜像和水平镜像变换的时候,图像应先转换为灰度图像,方可进行变化。

数字图像处理实验报告(五个实验全)

数字图像处理实验报告(五个实验全)

数字图像处理实验报告(五个实验全)实验⼀ Matlab图像⼯具的使⽤1、读图I=imread('lena.jpg');imshow(I);2、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像。

a=imread('lena.jpg')i = rgb2gray(a)I = im2bw(a,0.5)subplot(3,1,1);imshow(a);subplot(3,1,2);imshow(i);subplot(3,1,3);imshow(I);原图像灰度图像⼆值图像实验⼆图像变换1、对⼀幅图像进⾏平移,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与平移后傅⾥叶频谱的对应关系。

s=imread('beauty.jpg');i=rgb2gray(s)i=double(i)j=fft2(i);k=fftshift(j); 原图像原图的傅⾥叶频谱l=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b)b=double(b) 平移后的图像平移后的傅⾥叶频谱c=fft2(b);e=fftshift(c);l=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);subplot(2,2,2);imshow(uint8(b));subplot(2,2,3);imshow(A);subplot(2,2,4);imshow(B);2、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。

图像的放大与缩小实验设计与数据分析

图像的放大与缩小实验设计与数据分析

Brown, L., & Miller, C.
(2019)
Data Analysis Methods
致谢
Special thanks to Dr. Lee for guidance
Research Advisor
Appreciati on to
funding from XYZ Institute
研究目的
确定研究目 的
明确研究的具体 目标
阐明研究问 题
解决相关问题及 其重要性
研究方法
实验设计
介绍实验步骤及 设计
数据分析方 法
讨论数据处理方 法及可靠性
预期结果
01 研究成果分析
探讨可能得出的结果
02 应用前景
讨论研究成果对领域的影响
03
结论
通过本研究的实验设计与数据分析,我们期望能 够更深入地了解图像的放大与缩小,为该领域的 发展提供新的思路和方法。
讨论与分享
The discussion and sharing platform allows readers to exchange views and insights on the research findings. It encourages critical thinking and exploration of different perspectives.
01 现有研究成果对比
将本研究结果与现有研究成果进行比较和对 比
02 优势和不足
分析本研究的优势和不足之处
03
研究局限性
01、
局限性概述
概述本研究中可能存在的局限性和不足之 处
02、
影响分析
探讨这些局限性对实验结果的影响和改进 方向

使用图像处理技术实现数字图像的缩放和旋转

使用图像处理技术实现数字图像的缩放和旋转

使用图像处理技术实现数字图像的缩放和旋转图像处理技术是现代计算机视觉和计算机图形学领域中的重要研究方向,它可以对数字图像进行各种处理和操作,使图像更加美观和符合实际需求。

其中,缩放和旋转是图像处理中常见的操作,本文将介绍如何使用图像处理技术实现数字图像的缩放和旋转。

缩放是改变图像尺寸的过程,可以使图像变大或变小。

缩放图像通常包括两种操作:放大和缩小。

放大图像是将图像的尺寸增加到期望的大小,而缩小图像则是将图像的尺寸减小到期望的大小。

图像缩放可以应用于多个领域,如数字艺术、应用程序开发和计算机视觉等。

在图像处理中,缩放操作可以使用不同的算法来实现。

最常见的方法是双线性插值。

双线性插值是一种通过计算目标像素周围的邻近像素的加权平均值来获取目标像素值的方法。

具体而言,对于目标图像的每个像素,双线性插值会在原始图像的四个最近邻像素之间进行插值计算,以获得目标像素的值。

这种方法可以有效地保留图像的细节和清晰度。

除了缩放,旋转也是常见的图像处理操作。

旋转可以将图像按照一定的角度顺时针或逆时针旋转。

旋转图像可以应用于多个领域,如建筑设计、医学影像和计算机游戏等。

在图像处理中,实现图像的旋转可以使用不同的算法。

其中一个常用的方法是旋转矩阵。

旋转矩阵是通过将每个像素点的坐标与一个旋转矩阵相乘来实现旋转的。

旋转矩阵由角度和旋转中心确定。

通过对图像的每个像素点进行旋转矩阵运算,可以得到旋转后的图像。

除了旋转矩阵,还有其他的方法可以实现图像的旋转。

例如,使用反向映射(inverse mapping)的方法可以通过查找原始图像中与目标图像每个像素对应的位置来实现图像的旋转。

综上所述,图像处理技术可以应用于数字图像的缩放和旋转。

缩放可以通过双线性插值等算法实现,而旋转可以通过旋转矩阵和反向映射等方法实现。

这些技术可以帮助我们改变图像的尺寸和角度,从而满足实际需求。

无论是在艺术创作中还是在科学研究中,图像处理技术的应用都具有重要的意义。

数字图像处理处理大作业实验报告

数字图像处理处理大作业实验报告

数字图像处理处理大作业实验报告数字图像处理处理大作业实验报告PB11210***上上签MyZenith.N_3104_EVER实验一题目:线性插值改变图像大小实验目的:1、使用MATLAB编程实现对图片大小的改变操作,使所给图片达到所要求的效果。

2、通过对MATLAB的编程加强对图像处理的认识,初步学习MATLAB在图像处理中的基本应用实验内容:在这一项目中,同学们需要实现基于双线性插值的图像缩放算法。

作业中需实现如下功能:(a) 能够利用鼠标从实验图像中任意选取测试区域,并单独显示。

(b) 使用双线性插值算法对测试区域进行缩放处理,输出如下结果,放大到原始分辨率的2倍,放大到原始分辨率的4倍,缩小到原始分辨率的1/2倍。

实验原理:图像某点的值由最邻近的四个点联立方程决定。

实验代码:1、在主函数中,使用switch函数分别调用子函数,并且之前选择需要放大或者缩小的倍数。

代码如下:2、 choice=('Yes');3、4、5、6、7、8、while (minus(choice,('Yes'))==0) clear;close;F=imread('monarch.bmp'); I=imcrop(F); BR=I(:,:,1); BG=I(:,:,2); BB=I(:,:,3); [rows,cols]=size(BR);K = sqrt(str2double(inputdlg('·?±???', 'INPUT scalefactor', 1, {'2'})));9、 width = K * rows;10、 height = K * cols;11、12、13、14、 widthScale = rows/width;15、 heightScale = cols/height;16、17、 for x = 1:width-2for y = 1:height-218、 X = x * widthScale;Y = y * heightScale;19、20、 if (X/double(uint16(X)) == 1.0) && (Y/double(uint16(Y)) == 1.0) 21、 dstBR(x,y) = BR(int16(X),int16(Y));dstBG(x,y) = BG(int16(X),int16(Y));22、 dstBB(x,y) = BB(int16(X),int16(Y)); 23、 else24、 a = double(uint16(X));25、 b = double(uint16(Y));26、27、28、29、30、BRx11 = double(BR(a,b)); BRx12 = double(BR(a,b+1)); BRx21 = double(BR(a+1,b)); BRx22 = double(BR(a+1,b+1));31、32、 BGx11 = double(BG(a,b));33、 BGx12 = double(BG(a,b+1));34、 BGx21 = double(BG(a+1,b));35、 BGx22 = double(BG(a+1,b+1));36、37、38、39、40、BBx11 = double(BB(a,b)); BBx12 = double(BB(a,b+1)); BBx21 = double(BB(a+1,b)); BBx22 = double(BB(a+1,b+1));41、42、 w1 = (b+1-Y) * (a+1-X); 43、 w2 = (Y-b) * (a+1-X);w3 = (b+1-Y) * (X-a);44、 w4 = (Y-b) * (X-a); 45、 dstBR(x,y) = uint8( BRx11 * w1 + BRx12 * w2 + BRx21* w3 + BRx22 * w4 );46、 dstBG(x,y) = uint8( BGx11 * w1 + BGx12 * w2 + BGx21* w3 + BGx22 * w4 );47、 dstBB(x,y) = uint8( BBx11 * w1 + BBx12 * w2 + BBx21* w3 + BBx22 * w4 );48、 end49、 end50、 end51、52、53、54、55、56、57、OUT(:,:,1)=dstBR; OUT(:,:,2)=dstBG; OUT(:,:,3)=dstBB;imshow(I); figure; imshow(OUT);58、59、60、61、62、options.Interpreter = 'tex'; options.Default = 'Cancel'; choice = questdlg('??·','????','Yes','No',options); end实验结果:1、选择缩放倍数:2、所选择的图像源文件如下:3、用鼠标标定所需要进行缩放的区域:4、程序正常运行后缩放效果:4倍放大5、程序正常运行后缩放效果:2倍放大6、程序正常运行后的缩放效果:缩小一倍实验二题目:高斯滤波及中值滤波处理人为添加的椒盐噪声和高斯噪声实验目的:1、对所给定的图像使用MATLAB添加高斯噪声和椒盐噪声;2、再用MATLAB程序实现中值滤波和高斯滤波;3、计算所得到结果图像的PSNR,对它们进行分析与比较,从而理解各种滤波方法的优点与特性。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告一、引言数字图像处理是计算机科学与工程领域中的一个重要研究方向。

通过使用数字化技术,对图像进行采集、传输、存储和处理,可以实现对图像的增强、恢复、分析和识别等功能。

本实验旨在通过对数字图像处理算法的实践应用,探索图像处理的原理和方法。

二、实验目的本实验的主要目的是掌握数字图像处理的基本概念和算法,并通过实际操作加深对图像处理原理的理解。

具体目标包括:1. 学习使用图像处理软件,如Photoshop或Matlab等。

2. 掌握图像增强的方法,如直方图均衡化、滤波和锐化等。

3. 理解图像压缩和编码的原理,如JPEG和PNG等格式。

4. 了解图像分割和边缘检测的基本算法,如阈值分割和Canny边缘检测等。

三、实验过程1. 图像增强图像增强是指通过一系列算法和技术,改善图像的质量和视觉效果。

在实验中,我们可以使用直方图均衡化算法来增强图像的对比度和亮度。

该算法通过将图像的像素值映射到一个更大的范围内,使得图像的亮度分布更加均匀。

2. 图像滤波图像滤波是指通过一系列滤波器对图像进行处理,以实现去噪、平滑和锐化等效果。

在实验中,我们可以使用平滑滤波器(如均值滤波器和高斯滤波器)来去除图像中的噪声。

同时,我们还可以使用锐化滤波器(如拉普拉斯滤波器和Sobel滤波器)来增强图像的边缘和细节。

3. 图像压缩和编码图像压缩是指通过减少图像的数据量来减小图像文件的大小,从而实现存储和传输的效率提升。

在实验中,我们可以使用JPEG和PNG等压缩算法来对图像进行压缩和编码。

JPEG算法通过对图像的频域进行离散余弦变换和量化,实现对图像的有损压缩。

而PNG算法则采用无损压缩的方式,通过对图像的差值编码和哈夫曼编码,实现对图像的高效压缩。

4. 图像分割和边缘检测图像分割是指将图像分成若干个区域,以实现对图像的目标提取和图像分析的目的。

而边缘检测是指通过检测图像中的边缘和轮廓,实现对图像的形状分析和目标识别。

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

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

《数字图像处理》实验报告数字图像处理是计算机科学与技术领域中的一个重要分支,它涉及到对图像进行获取、处理、分析和显示等一系列操作。

在本次实验中,我们将学习和探索数字图像处理的基本概念和技术,并通过实验来加深对这些概念和技术的理解。

首先,我们需要了解数字图像的基本概念。

数字图像是由像素组成的二维矩阵,每个像素代表图像中的一个点,像素的灰度值或颜色值决定了该点的亮度或颜色。

在实验中,我们将使用灰度图像进行处理,其中每个像素的灰度值表示了该点的亮度。

在数字图像处理中,最基本的操作之一是图像的获取和显示。

我们可以通过摄像头或者从文件中读取图像数据,然后将其显示在计算机屏幕上。

通过这种方式,我们可以对图像进行观察和分析,为后续的处理操作做好准备。

接下来,我们将学习一些常见的图像处理操作。

其中之一是图像的灰度化处理。

通过将彩色图像转换为灰度图像,我们可以减少图像数据的维度,简化后续处理的复杂度。

灰度化处理的方法有多种,例如将彩色图像的RGB三个通道的像素值取平均值,或者使用加权平均值的方法来计算灰度值。

另一个常见的图像处理操作是图像的平滑处理。

图像平滑可以减少图像中的噪声,并使得图像更加清晰。

常用的图像平滑方法包括均值滤波和高斯滤波。

均值滤波通过计算像素周围邻域像素的平均值来平滑图像,而高斯滤波则使用一个高斯核函数来加权平均邻域像素的值。

除了平滑处理,图像的锐化处理也是数字图像处理中的一个重要操作。

图像的锐化可以增强图像的边缘和细节,使得图像更加清晰和鲜明。

常用的图像锐化方法包括拉普拉斯算子和Sobel算子。

这些算子通过计算像素周围邻域像素的差异来检测边缘,并增强边缘的灰度值。

此外,我们还将学习一些图像的变换操作。

其中之一是图像的缩放和旋转。

通过缩放操作,我们可以改变图像的尺寸,使其适应不同的显示设备或应用场景。

而旋转操作可以将图像按照一定的角度进行旋转,以达到某种特定的效果。

最后,我们将学习一些图像的特征提取和分析方法。

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

X x大学数字图像处理与通信课程实验报告
班级:
学号:
姓名:
实验项目名称:图像的放大或缩小
实验项目性质:设计性实验
实验所属课程:数字图像处理与图像通信实验室(中心):网络实验中心
指导教师:
实验完成时间:2012 年10 月30 日
一、实验目的:
1. 首先,通过实验进一步熟悉matlab、matlab 编程环境以及其基本操作,和对图像的读取、显示、保存等一些基本操作,同时增加自己的实际动手能力。

加强了解MATLAB 的操作环境。

2. 完成对图像放大(或缩小)n倍的操作。

二、实验主要内容及要求:
内容:完成对图像放大(或缩小)n倍的操作。

要求:自写函数。

三、实验设备及软件:
PC机一台,MATBLAB。

四、设计方案
1、首先通过读入一张图片,然后将图像进行二值操作;
2、从而调用函数,判断参数w是大于1还是小于1,如果大于1,就执行放大
处理,反之则反;
3、最后将处理后的图像输出,与原图像进行比较分析。

五、主要代码及必要说明:
function y=fs(w)
f=imread('lu.jpg');
f1=im2double(f);
figure,imshow(f1);
[m,n,k]=size(f1);
%对图像进行放大处理
if w>1
g=zeros(m*w,n*w,k);
for x=1:m
for y=1:n
g(ceil(x*w)+1,ceil(y*w),1)=f1(x,y,1); g(ceil(x*w)+1,ceil(y*w),2)=f1(x,y,2); g(ceil(x*w)+1,ceil(y*w),3)=f1(x,y,3);
End
figure,imshow(g);
title(‘放大后的图像’);
end
%对图像进行缩小处理
else
g=zeros(ceil(m*w),ceil(n*w),k);
for x=1:ceil(m*w)
for y=1:ceil(n*w)
g(x,y,1)=f1(ceil(x/w),ceil(y/w),1);
g(x,y,2)=f1(ceil(x/w),ceil(y/w),2);
g(x,y,3)=f1(ceil(x/w),ceil(y/w),3);
end
e nd
figure,imshow(g);
title(‘缩小后的图像’);
end;
六、测试结果及说明:
1、经过处理,缩小后的图像如下图所示:
2、经过处理,放大后的图像如下图所示:
3、原图如下:
4、通过调用所编函数,经过演示,得出以上图像,通过比较,即可看出其效果。

七、实验体会:
通过本次实验,使我对用matlab处理图像的流程又有了更加深的了解,从而,对于本次实验的内容,也有了初步的理解和掌握;知道了以后在对图像处理的时候知道该如何去操作matlab软件,但是所不足的是,对理论性知识掌握程度不够。

首先,在对图像做这些处理的时候,利用参数w,对图像进行放大或者缩小w倍。

从而,通过对以上图像的操作处理,对比即可以得出其处理效果。

也是通过这次实验,使得我基本上掌握了对图像的放大或者缩小的操作处理方法,了解了放大和缩小的算法,我会在以后的学习中,更加努力,既注重理论性的学习,又要对图像的处理做一些更加具体、更加有针对性的、精确性的操作。

增强使用MATLAB 的能力。

总而言之,一切都要以实践为前提,实验是必不可少的!。

相关文档
最新文档