Matlab课程设计

发布 2022-10-01 01:26:28 阅读 7376

课程设计任务书。

学生姓名: 汪伟专业班级: 通信0806

指导教师: 郭志强工作单位: 信息工程学院

题目: 基于matlab图像变换及压缩编码。

初始条件:软件。

2.图形处理相关函数。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.读入图像并对图像进行傅利叶变换、小波变换、小波包变换、离散余弦变换、离散沃尔什变换,二维哈达玛变换。

2.分别采用小波变换和离散余弦变换对图像进行压缩,并与原图像进行比较。

时间安排:指导教师签名年月日。

系主任(或责任教师)签名年月日。

目录。摘要 3

abstract 4

1.基于matlab图像变换 5

1.1傅里叶变换 5

1.1.1傅里叶变换的原理 5

1.1.2图像的傅里叶变换 5

1.2离散余弦变换 7

1.2.1离散余弦变换的原理 7

1.2.2**的dct变换 8

1.3 小波变换 10

1.3.1 小波变换的原理 10

1.3.2**的小波变换 10

1.4小波包变换 12

1.5离散沃尔什变换 15

1.6二维哈达玛变换 17

2.基于matlab压缩编码 18

2.1基于离散余弦变换的压缩编码 18

2.2基于小波变换的压缩编码 20

4. 心得体会 23

参考文献 24

matlab图象处理工具箱是由mathmatics公司推出的用于数值计算的有力工具,是一种***计算机语言,它具有相当强大的矩阵运算和操作功能,力求使人们摆脱繁杂的程序**。

matlab是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。matlab 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。

本次练习介绍的就是matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。以及用离散余弦变换对图像进行分析。

关键词:matlab 计算语言图像处理。

matlab image processing toolbox from mathworks, introduced a powerful tool for the numerical calculation, is a fourth-generation computer language, it has a very powerful matrix and operation functions, which seeks to get rid of complicated code.

matlab is a numerical computation, symbolic computation and graphics processing power in one of the scientific computing language. as a powerful platform for scientific computing, it is almost able to meet all computing needs. matlab itself is a powerful data visualization tools, you can display analysis of data in various forms, for example, histogram, contour xian, montage hunhe, pixel analysis, and material mapping layers bianhuan.

the exercise is described in matlab environment, some of the most basic image processing operations, such as reading the image, write image, view image information and the format, size and intensity of stretching, etc.; through the description of experimental methods to grasp the image histogram, histogram image features to enhance the relationship between the shape and understanding between; deepen the understanding of histogram equalization algorithm. and using discrete cosine transform on the image for analysis.

keywords:matlab computing language image operations

傅里叶变换是线性系统分析的一个有力工具,它将图像从空域变换到频域,从而很容易地了解到图像各空间频域成分,从而进行相应的处理。傅里叶变换应用十分广泛,如图像特征提取、空间频率域滤波、图像恢复、纹理分析等。

如果一个周期为t的函数在[-t/2,t/2]上满足狄利克雷条件,则函数在[-t/2,t/2]上可以展开成傅里叶级数。

可见,傅里叶级数清楚地表明了一个周期信号由哪些频率分量组成及其所占的比重,从而有利于对周期信号进行分析和处理。

根据周期信号的这个特点,可以把傅里叶级数的概念推广到非周期信号上,这就引出了傅里叶变换。

a=imread(''

b=rgb2gray(a);

subplot(1,2,1);

imshow(b);

title('灰度图像');

c=fft2(double((b)))

subplot(1,2,2);

imshow(log(abs(c)),

title ('傅里叶变换');

运行结果:图1 傅里叶变换。

离散余弦变换(dct for discrete cosine transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(dft for discrete fourier transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位(dct有8种标准类型,其中4种是常见的)。

最常用的一种离散余弦变换的类型是下面给出的第二种类型,通常我们所说的离散余弦变换指的就是这种。它的逆,也就是下面给出的第三种类型,通常相应的被称为"反离散余弦变换","逆离散余弦变换"或者"idct"。

有两个相关的变换,一个是离散正弦变换(dst for discrete sine transform),它相当于一个长度大概是它两倍的实奇函数的离散傅里叶变换;另一个是改进的离散余弦变换(mdct for modified discrete cosine transform),它相当于对交叠的数据进行离散余弦变换。

这一技术可以应用到彩色图像上。彩色图像有像素组成,这些像素具有rgb彩色值。每个像素都带有x,y坐标,对每种原色使用8x8或者16x16矩阵。

在灰度图像中像素具有灰度值,它的x,y坐标由灰色的幅度组成。为了在jpeg中压缩灰度图像,每个像素被翻译为亮度或灰度值。为了压缩rgb彩色图像,这项工作必须进行三遍,因为jpeg分别得处理每个颜色成分,r成分第一个被压缩,然后是g成分,最后是b成分。

而一个8x8矩阵的64个值,每个值都带有各自的x,y坐标,这样我们就有了一个像素的三维表示法,称作控件表达式或空间域。通过dct变换,空间表达式就转化为频谱表达式或频率域。从而到达了数据压缩的目的。

dct式目前最佳的图像变换,它有很多优点。dct是正交变换,它可以将8x8图像空间表达式转换为频率域,只需要用少量的数据点表示图像;dct产生的系数很容易被量化,因此能获得好的块压缩;dct算法的性能很好,它有快速算法,如采用快速傅立叶变换可以进行高效的运算,因此它在硬件和软件中都容易实现;而且dct算法是对称的,所以利用逆dct算法可以用来解压缩图像。

为什么采用8x8的图像块,其原因是由于计算量和像素之间关系的数量,许多研究表明,在15或20个像素之后,像素间的相关性开始下降。就是说,一列相似的像素通常会持续15到20个像素那么长,在此之后,像素就会改变幅度水平(或反向)。

模拟图像经采样后成为离散化的亮度值然后分成一个个宏块,而一个宏块有分成8x8大小的块,可以用一个矩阵来表示这个块。

在这里,n=8,矩阵中元素f(i,j)表示块中第i行、第j列像素的亮度值。把该矩阵看作一个空间域,显然,块中这些亮度值的大小有一定的随机性,无序性,或者说亮度值的分布没有什么特征;dct变换就是来解决这个问题的,把这些随机的数据变的有序,便于对数据进行编码压缩。

一维dct正交变换的公式为:

二维dct逆变换公式:

其中。对于一维dct变换,需要n2次乘法,和n(n-1)次加法;像一个8x8阶矩阵运算,如果使用普通的全矩阵乘法运算,需要84次乘法,n2(n2-1)次加法运算,显然,对于实时的压缩需要来说,这是一个极大的运算量,对硬件要求较高。

在matlab中,函数dct2 和函数idct2分别用于进行二维dct变换和二维dct反变换。

其调用格式为dct(a),idct(a)。基于本次训练,**如下:

i=imread(''

h=rgb2gray(i);

dct=dct2(h);

dct(abs(dct)<10)=0;

idct=idct2(dct);

figure

imshow(h);

title('灰度图');

figure

imshow(idct,[0 255]);

title('压缩图');

figure

imshow(dct);

title('dct变换图');

figure

imshow(log(abs(dct)),

title('二维变换图');

图2 离散余弦变换。

小波(w**elet)是在有限时间范围内变化且其平均值为零的数学函数,它具有如下特征。

1.具有有限的持续时间和突变的频率和振幅。

2.在有限的时间范围内,它的平均值等于零。

MATLAB课程设计

1 求被控对象传递函数g s 的matlab描述。num 789 6312 11835 den 1 14 56 64 0 0 gs tf num,den transfer function 789 s 2 6312 s 11835 s 5 14 s 4 56 s 3 64 s 2 2 求被控对象脉冲...

MATLAB课程设计

课程设计。题目 matlab计算器。姓名 班级 学院 专业 完成时间。1总体设计。该计算器程序主要是matlab来制作,界面主要由四个静态文本框 21个运算按钮和两个动态文本框组成。实现的运算功能有四则运算 加 减 乘 除。而且添加了括号使人们使用时更加简单。这些计算功能主要调用了matlab的自定...

MATLAB课程设计

matlab课程设计。如图所示,为测量系统的示意图,它由两个能相互转动的连杆,角度编码器和滚轮等组成。o1为固定点,o2点为转动点,o3点为滚轮的中心,连杆的有效长度分别为l1和l2。任一位置时,连杆1相对于某基准位置的角度为 1,两连杆的相对角度为 2。其中对于 1,取垂直方向为基准线,在基准线左...