课程设计任务书学生姓名:专业班级:通信1003班指导教师:郭志强工作单位:信息工程学院题目: 通信工程应用技术初始条件:(1)使用matlab软件进行操作(2)选择一个图像进行处理要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)编程实现一幅图像的平移、镜像、旋转、缩小和放大。
(2)给出所用算法的理论依据和必要的推导过程,给出原始图像和处理后的图像。
时间安排:第15周:安排任务,布置题目;第15—18周:设计仿真,撰写报告第19周:完成设计,提交报告,答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)Abstract ........................................................................................................................................................... I I 1 MA TLAB简介 .. (1)1.1 MA TLAB用途 (1)2图像选择及变换 (4)2.1 原始图像选择读取 (4)2.2 图像放大和缩小 (6)2.2.1 图像放大缩小的知识 (6)2.2.2 函数说明及参数选择 (8)2.2.3 源程序及运行结果 (8)2.3 图像任意角度的旋转 (10)2.3.1 函数说明及参数选择 (10)2.3.2 源程序及运行结果 (10)2.4 图像的平移 (12)2.4.1 函数说明及参数选择 (12)2.4.2 源程序及运行结果 (13)2.5 图像经过镜像 (13)3.5.1 函数说明及参数选择 (13)2.5.2 源程序及运行结果 (14)4 感悟体会小结 (17)5 参考文献 (18)附录 (19)全部源程序代码: (19)摘要MATLAB是—套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成—个方便的、界面友好的用户环境。
MATLAB强大的扩展功能为各个领域的应用提供了基础,由各个领域的专家相继给出了MATLAB工具箱,其中主要有信号处理,控制系统,神经网络,图像处助,鲁棒控制,非线性系统控制设计,最优化,小波,通信等工具箱,这此工具箱给各个领域的研究和工程应用提供了有力的工具。
借助于这些“巨人肩膀上的工具”,各个层次的研究人员可直现方便地进行分析、计算及设计工作,从而大大地节省了时间。
本次课程设计的目的在于较全面了解常用的数据分析与处理原理及方法,能够运用相关软件进行模拟分析。
编程实现一幅图像的平移、镜像、旋转、缩小和放大。
要求给出所用算法的理论依据和必要的推导过程;给出原始图像和处理后的图像,达到本次课程设计的目的。
关键词:MATLAB放大旋转平移镜像AbstractMATLAB is a set of high-performance numerical computation and visualization software, which combines numerical analysis, matrix computation, signal processing and graphics in one form - a convenient, user-friendly user environment.MATLAB is a powerful extension application in various fields to provide a basis by experts in various fields have been given a MATLAB toolbox, which are signal processing, control systems, neural networks, image processing support, robust control, nonlinearcontrol system design, optimization, wavelets, communications toolkit, which this kit to the various areas of research and engineering applications a powerful tool.With these "tools on the shoulders of giants," researchers at all levels can now be easily analyzed directly, calculation and design work, which greatly saves time.The purpose of this course design is a comprehensive understanding of common principle and method for data analysis and processing, able to use relevant software for simulation analysis. Programming to realize an image of translation, mirror, rotate, narrowing and widening. Ask for the derivation process of the algorithm used in theoretical basis and necessary; The original image and processed image is given. Achieve the goal of this curriculum designKeywords: MATLAB magnification rotation translation mirrorII1 MATLAB简介1.1 MATLAB用途MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
如图matlab操作界面如下1.-1所示:图1-1matlab操作界面1.2 MATLAB的语言特点(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。
运算符丰富。
(2).MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(3)程序限制不严格,程序设计自由度大。
(4)MATLAB的图形功能强大。
(5)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
(6)由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
1.3 MATLAB系统构成主要由以下五部分构成:MATLAB系统构成(1)MATLAB语言(2)MATLAB工作环境(3)图形处理(4)MATLAB数学函数库(5)MATLAB应用编程人员接口(API)2图像选择及变换2.1 原始图像选择读取MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。
这次采用的是imread函数来实现图像文件的读取操作,采用的格式如下:A=imread(‘filename.fmt’)该语句用于读取字符串“filename”对应的灰度图像或彩色图像,“fmt”指定了文件的格式。
采用imfinfo函数查询图像文件的信息。
其语句格式如下:Info=imfinfo(‘filename.fmt’)该语句可以在命令窗口会显示出文件的基本信息。
采用imshow函数进行图像的显示,采用的格式如下:A=imread(‘filename.fmt’); imshow(A);当这种显示方式要求被显示的图像要么在当前目录下或MATLAB的目录下。
图像读入与显示和变化的源代码如下:%获取图像,并显示各种基本信息RGB=imread('F:/rabbit.jpg'); % RGB:原始图像,真彩色;Info=imfinfo('F:/rabbit.jpg')figure;imshow(RGB)title('原始图像')程序运行结果如下图2-1所示:图2-1 读取后显示图片命令窗口输出结果:Info = Filename: 'F:/rabbit.jpg'FileModDate: '12-十二月-2013 17:40:23'FileSize: 7057Format: 'jpg'FormatVersion: ''Width: 293Height: 220BitDepth: 24ColorType: 'truecolor'FormatSignature: ''NumberOfSamples: 3CodingMethod: 'Huffman'CodingProcess: 'Sequential'Comment: {}2.2图像放大和缩小2.2.1 图像放大缩小的知识1)最邻近插值算法最简单的插值算法是最邻近插值,也称为零阶插值。
它输出的像素灰度值就等于距离它映射到的位置最近的输入像素的灰度值,最邻近插值算法简单,在许多情况下都能得到令人满意的结果,但是当图像中包含像素之间灰度级有变化的细微结构时,最邻近算法会在图像中产生人为加工的痕迹。
双线性插值算法计算量比零阶插值大,但缩放后图像质量高,不会出现像素值不连续的的情况,这样就可以获得一个令人满意的结果。
最邻近点插值[取插值点的4个邻点中距离最近的邻点灰度值作为该点的灰度值。