电子信息工程类毕业论文数字图像缩放技术研究内容摘要:

程以字符进行。 3 数据分析功能。 MATLAB 可以给计算数据以二维、三维乃至四维的图形表现。 这不仅使数据间的关系清晰明了 ,而且对于揭示其内在本质有着非常重要的作用。 4 动态仿真功能。 MATLAB 提供了一个模拟动态系统的交互程序 SIMULINK,用户通过简单的鼠标操作 ,就可建立起直观的系统模型 ,并进行仿真。 5 图形文字统一处理功能。 MATLAB Notebook 成功地将 Microsoft Word 与 MATLAB 集成为一个整体 ,为文字处理、科学计算、工程设计营造了一个完美统一的工作环境。 它既拥有 Word 强大的文字处理功能 ,又能从 Word 访问MATLAB 的 数据计算和可视化结果。 . MATLAB 在图象处理中的应用 [8] 图像处理工具包是由一系列支持图像处理操作的函数组成的。 所支持的图像处理操作有 :图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换 DCT 变换等 、图像分析和统计、二值图像操作等。 下面就 MATLAB 在图像处理中各方面的应用分别进行介绍。 1 图像文件格式的读写和显示。 MATLAB 提供了图像文件读入函数 imread ,用来读取如 :bmp, tif、 tiff、 pcx 、 jpg 、 gpeg 、 hdf、 xwd 等格式图像文;图像写出函数 imwrite ,还有图像显示函数 image 、 imshow 等等。 2 图像处理的基本运算。 MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性算。 例如, conv2 I, J 实现了 I, J 两幅图像的卷积。 3 图像变换。 MATLAB 提供了一维和二维离散傅立叶变换 DFT 、快速傅立叶变换 FFT 、离散余弦变换 DCT 及其反变换函数,以及连续小波变换 CWT 、离散小波变换 DWT 及其反变换。 4 图像的分析和增强。 针对图像的统计计算 MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。 5 图像的数学形态学处理。 针对二值图像, MATLAB 提供了数学形态学运算函数;蚀 Erode 、膨胀 Dilate 算子,以及在此基础上的开 Open 、闭 Close 算子、厚化 Thicken 、薄化 Thin 算子等丰富的数学形态学运算。 以上所提到的 MATLAB在图像中的应用都是由相应的 MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。 具体的用法可参 考 MATLAB丰富的帮助文档。 图像边缘对图像识别和计算机分析十分有用,在 MATLAB 中,函数 edge 用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即Sobel 方法、 Prewitt 方法、 Robert 方法, Laplacian2Gaussian 方法、过零点方法和 Canny 方法。 第三章 传统数字图像缩放技术 数字图像缩放技术概述 . 什么是数字图像缩放 一般来说,数字图像缩放就是指图像分辨率的变换。 包括由高分辨率图像转变为底分辨率图像和有低分辨率图像转变为高分辨率图像。 数字图像缩放是图 像处理领域里非常常见的操作,属于数字图像的几何变换范畴。 随着信息科技的发展,图像缩放技术的应用范围越来越广,包括计算机图像处理软件中的应用,互联网上的多媒体浏览,数字电视视频传输与显示领域,天文与气象观测领域,军事领域,医学图像应用领域及数码照片拍摄与处理领域。 总之只要有视频多媒体的地方,有图像处理的地方,都会有数字图像缩放技术的身影。 随着数字化时代的到来,该技术会越来越多的得到应用。 本文主要针对于数字电视领域图像缩放,因此在算法上有较强的针对性,对于一些在数字电视领域难以实现的算法不做过多研究。 . 数字 图像缩放的算法概述 就目前来说,数字图像缩放技术主要是应用数学上的插值理论,使用插值( Interpolation)算法。 传统的图像插值算法有最近邻插值( Nearest Neighbor Interpolation),双线性插值( Bilinear Interpolation),双三次插值( Bicubic Interpolation)。 传统插值算法在 MATLAB 中都有相应的工具函数,属于比较成熟的算法。 在当今流行的插值算法多是对传统插值算法的改进,包括基于近临插值与邻域取平均的图像缩小算法,基于 Ferguson 曲面插值的图像缩放方法,带系数自适应插值算法及其改进,基于数字图像边缘提取的插值算法及改进,基于图像增强技术提高图像分辨率方法,随着小波技术的发展,还有越来越多的基于小波的图像插值算法。 但本人觉得由于基于图像增强技术提高图像分辨率方法和基于小波的图像插值算法计算量过大,加上当今硬件处理速度的限制,很难应用于数字电视的视频处理领域,达到实时处理的要求。 随着硬件技术的发展有望应用于数字电视视频处理领域。 传统的数字图像缩放技术 [7] 由于图像像素的灰度值是离散的,因此一般的处理方法是对原来在整数点坐标上 的像素值进行插值生成连续的曲线 面 ,然后在插值曲线 面 上重新采样以获得放大或缩小图像像素的灰度值。 以一维空间像素的灰度插值为例,图 所示的是将原图的 5 个像素缩小为 4 个像素的过程:先根据~这五个像素的灰度值采用选定的插值算法生成插值曲线,再对该曲线进行重采样得到缩小后的四个像素~,从而实现图像的缩放。 下面简要介绍目前常用的三种插值采样方法。 图 图像缩放中的插值和重采样 .插值( Nearest Neighbor Interpolation) 1.近邻插值数学概述 插值核函数为: 其频域变换为: 其 核函数及对应的傅立叶变换频谱图如图 为: 图 近邻插值核函数及其傅立叶变换频谱图 2.实现方法 将目的图像的某个坐标通过计算得到一个浮点坐标,对其进行简单的取整处理就得到一个对应原照片图像的整数坐标,目的照片图像坐标的像素值。 具体算法为 :设处理的目的图像的坐标为,图像的缩放比例为 m ,则对应原图像的浮点坐标为 x/ m , y/ m ,对该坐标取整得到对应原照片图像的整数坐标 ,目的照片图像在该坐标的像素值。 显然该方法就是取该浮点坐标最邻近的左上角对应的像素值。 3 算法评价 对于二维图像。 该 法是“取待采样点周围 4 个相邻像素点中距离最近的 1个邻点的灰度值作为该点的灰度值”。 此算法虽然计算简单,但由于仅用对该采样点影响最大的 即最近的 像素的灰度值作为该点的值,而没有考虑其他相邻像素的影响 相关性 ,因此重新采样后的图像灰度值有明显的不连续性,像质损失较大。 .插值( Bilinear Interpolation) 1.线性插值数学概述 插值核函数: 其频域变换为: 其核函数及对应的傅立叶变换频谱图如图 所示: 图 双线性插值核函数及其傅立叶变换频谱图 2.实现方法 双线性内插法通过线性插 值的方式来得到目的图像的像素值。 我们通过近邻取样法知道,对于一个的像素,其坐标通过反向变换可得到一个浮点坐标,我们可令其为 i + u, j + v ,其中 i 和 j 均为负整数, u 和 v 为 [0,1]区间的浮点数,则这个目的像素的值可由原图像中坐标为 i , j , i+1,j , i ,j +1 , i +1,j +1 所对应的值的线性插值来决定,即 1 u 1 v f i ,j + 1 u vf i , j +1 + u 1 v f i +1, j + uvf i +1,j +1。 其示意图如图 所示: 图 双线性插值算法实现示意图 3.算法评价 与最邻近法相比。 双线性内插法由于考虑了待采样点周围四个直接邻点对待采样点的影响,因此基本克服了前者灰度不连续的缺点,但其代价是计算量有所增大。 但进一步看,由于此方法仅考虑四个直接邻点灰度值的影响,而未考虑到各邻点间灰度值变化率的影响,因此具有低通滤波器的性质,使缩放后图像的高频分量受到损失,图像的轮廓变得较模糊。 用此方法缩放后的图像与原图像相比,仍然存在由于计算模型考虑不周而 产生的图像质量退化与精度降低的问题。 . 双三次插值( Bicubic Interpolation) ..1 双三次插值的数学概述 插值核函数: 其频域变换为: 其核函数及对应的傅立叶变换频谱图如图 所示: 图 双三次插值插值核函数及其傅立叶变换频谱图 2.实现方法 对双线性内插法的改进,即不仅考虑到四个直接邻点灰度值的影响,还考虑到各邻点间灰度值变化率的影响,立方卷积法利用了待采样点周围更大邻域内像素的灰度值作三次插值( 4*4 16 个像素点)。 利用上述插值核函数提供的公式进行插值。 计算时取周围的 16 个像素点,其示意图如图 所示: 图 双三次插值算法实现示意图 该像素的灰度值 f x, y 为: 式中各矩阵含义如下: 双线性内插法相比,立方卷积法不仅考虑了直接邻点的灰度值对待采样点 的影响,还考虑了邻点间灰度值变化率的影响,因此后者所求得的待采样点灰度值更接近原 采样 值。 此方法用进一步增大计算量来换取待采样点精度的进一步提高,因此并不是最佳的插值算法。 第四章 当今主流数字图像缩放技术的算法 基于近临插值与邻域取平均的图像缩小算法 .入 传统的图像缩放算法中,有的有的失真较小但是算法复杂,如双三次插值;有的运算量小但得到的图像失真较大,如最近邻插值和双线性插值。 在对图像进行缩小的时候存在着图像信息的损失 ,而且缩小的比例越大,损失越大,从而导致图像的失真较大,最主要的是在对图像进行缩小的时候显然会出现原图像的多个像素对应同一个像素点从而会 产生像素跃越现象。 如何合适的选取目的图像的像素值是图像缩小的最关键的问题。 我们可以通过反向变换法来实现。 反向变换法从目的图像出发,对于一个目的像素 ,通过缩放变换的逆变换 ,找到这个目的像素的原坐标点。 但是,存在这样一个问题 ,即将目的像素的整数坐标通过反向变换后将得到浮点坐标。 通常对于一个浮点坐标,其对应的点的周围将有最邻近的四个或八个像素。 取哪一个像点的像素值来作为这个目的像素的值呢。 从实质上来讲,就是怎样通过邻近的像素值来计算出一个新的像素值,这个新值就是目的像素的值。 传统三种算法在进行缩小时候, 图像缩小的比例越大,像素跃越现象越明显,显然会产生高频干扰。 因此要使得图像不失真必须采用低通滤波的方式将这些高频干扰去除。 实际上我们处理的时候是将做反变换和滤波同时进行,这样做的效果更好于是我们运算量与运算结果上都做了考虑得到此种兼顾运算速度与运算质量的图像缩小算法。 . 算法实现 设原图像的坐标为,该点的像素值为,目标图像的坐标为 x,y ,该点的像素值为。 缩小的比例为 k, k 在 0,1 区间取值。 则通过反变得到的一个浮点坐标为 x/ k,y/k ,对该坐标取整得到一个整数坐标。 这种取得原图像坐标方法实际和近邻取样法完全相同。 但是我们不直接利用该点的像素值,而是取该点的周围的某些点的平均值来作为目标点的像素值。 这样做实际上就是一个低通滤波的过程。 我们就称这种算法为近邻取样和邻域平均相结合的算法。 邻域平均算法为 :令被讨论像素的像素值为,以其为中心,窗口像素组成的点集以 A 表示,集内像素个数以 L 表示。 经邻域平均滤波后,像素对应的输出为:,用窗口像素的平均值代替原来的像素值。 邻域的选取通常有两种方式 :以单位距离为半径,为一菱形窗口或单位距离的倍为半径,为一矩形窗口,在本文中我们采取了菱形窗口。 具体编程的时候我 们使用了如下模板 以距离为 5 个像素为例。 模板取法如图 所示: 图 邻域平均 5 5 模板 实际该模板为一个 5 5 的矩阵,使用步骤为: 1 将模板中心和通过近邻取样法得到的像素点位置重合; 2 将模板上系数与模板下对应像素值相乘; 3 将所有的乘积相加; 4 将和除以模板各系数之和得到目的图像对应点像素值。 在有些情况下,我们还可以使用权值不相同的模板。 如我们认为距离中心像素远的点对目的像素的影响小,我们就可以将他们的权值设小一些,相反距离中心像素近的点对目的像素的影响大,就可以将 他们的权值设大一些。 下面是一个权值和距离成反比的 5 5 模板: 总的算法流程为: 1 读入原图像,得到图像的高度和宽度; 2 通过缩放比例得到目的图像的高度和宽度,建立空白目的图像。 3 从上到下,从左往右的顺序扫描目的图像; 4 扫描过程中对每一个目的图像的坐标 ,利用近邻法取样法在原图像中找到模板中心位置; 5 利用设定的模板进行邻域平均得到目的图像扫描点的像素值,如果模板覆盖在原图像的边界,要进行边界处理; 6 扫描完成,图像的缩小处理也就完成了。 图 权值和距离成反比的 5 5 模板 . 算法评价 本文讨论的近邻取样和邻域平均相结合的方法对图像进行缩小处理,具有算法简单,失真较小的特点。 尤其在处理细节单调,背景和物体之间区别明显的图像,而且缩小比例较大的时候 ,处理效果较好,比较适合处理人的头像。 但是在处理轮廓。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。