版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于六角像素的图像双三次插值算法摘 要与传统的方形网格相比,基于六角网格的数字图像处理方法有它独特的优点,因此,基于六角像素的图像处理技术的研究越来越受到人们的关注。然而,由于没有成熟的硬件来支持基于六角网格下图像的获取和显示,人们的研究工作往往在模拟六角网格进行。 在四角像素中,双三次插值算法是一种插值效果较好的方法。本文的主要任务就是研究在六角像素下的双三次插值算法的使用和使用效果。试图证明:在六角像素下双三次插值算法也同样具有更好的插值效果。 本文采用一种pseudo六角像素模拟方法中关于虚拟六角像素的sa算法,在虚拟六角像素定址的基础上实现虚拟六角网格中的插值实验。具体步骤:1. 首先
2、将一个正方形像素细分为77的49个小像素,用双线性插值算法求每个小像素的灰度,并表示图像。2. 在虚拟的六角结构下运用双线性插值算法对灰度图像进行灰度重建,再采用双三次插值算法,对相同的灰度图像进行灰度重建。本文采用三次卷积公式进行双三次插值。3. 返回到四角结构下显示重建图像,比较两个重建灰度图的重建效果。4. 通过计算原始图像信号噪音功率比和最终图像的信号噪音功率比,对实验结果进行分析比较,我们可以得到这样的结论:在六角形象素下的图像双三次插值算法同样具有更好的插值效果。关键词: 六角网格,灰度值,双三次插值image bicubic interpolation algorithm bas
3、e on hexagonal gridabstractcompared to the traditional square grid,the way of image processing based on the hexangular grid has its special advantage.therefore,people pay more and more attention to the study of image processing techlnique.however,because there is no mature hardware supporting for th
4、e capture and display of hexagonal-based image,the study work of researchers is done based on hexangular grid imitation.bicubic interpolation is a way in square grid which has better effect of image interpolation.the main job of this paper. is studying how to use bicubic interpolation on the hexangu
5、lar pixel and the effect of using.try to prove that bicubic interpolation also has better effect of image interpolation on hexangular pixel.this paper uses sa algorithm about virtual hexangular pixel which is a part of pseudo hexangular pixel imitation,it uses the sa algorithm to implement the virtu
6、al hexangular grid based on ascertaining the address in imitating the hexangular pixel. concrete step:1. first,each one pixel is divided delicately to 49 small pixel. then, we adopt the blinear interpolation to calculate the grey and figure the image.2. we adopt the improved blinear interpolation ba
7、sed on hexangular grid imitation to reconstruct the grey image. we do it again using the improved bicubic interpolation instead and reconstruct the same grey image. this paper adopts bicubic interpolation in the use of cubic convolution formula.3. we compare the rebuilding effect of two grey images
8、after displaying the reconstructed image on square grid.4. after computing signal to noise between original and final image and analysing,comparing the result, we can make the conclusion that the image bicubic interpolation based on hexangular grid has better effect in interpolation key words: hexag
9、onal grid, grey value,bicubic-interpolationi目 录23基于六角像素的图像双三次插值算法摘 要iabstractii第一章 绪论11.1 研究背景11.2 研究的主要内容11.3 研究的目的意义2第二章 虚拟六角结构分析32.1四角网格32.2六角网格32.3六角网格的特点42.3.1四角网格与六角网格的进一步比较42.3.2六角网格的优点42.4 模拟六角网格52.3.1四角像素错位模拟六角像素52.3.2另一种方法的模拟六角结构62.3.3 pseudo六角像素72.3.4虚拟六角结构下的图像处理8第三章 插值实验设计93.1 灰度插值算法93.1
10、.1 最近邻插值算法(近邻取样法)93.1.2 双线性插值法93.1.3 双三次插值法103.2 实验的软硬件条件113.2.1 实验的硬件要求113.2.2 实验的软件要求113.3 定址方法113.4基于六角网格的双线性插值实验133.5基于六角网格的双三次插值实验163.5.1传统的双三次插值算法163.5.2 改进后的基于六角网格的双三次插值算法163.5.3 实现基于六角网格的双三次插值法17第四章 实验结果及分析194.1 实验结果194.2 结果分析20结论22谢辞23参考文献24基于六角像素的图像双三次插值算法第一章 绪论1.1 研究背景插值算法是计算机图形学和图像处理的基本算
11、法,它广泛地应用在图像缩放和旋转、动画中间帧的生成等图形学和图像处理问题的研究之中。由于通常的显示设备大多数是将像素点以四角网格形式排列的,因此,早期的图像处理的研究基本上是基于四角网格进行的,有关插值算法的研究也基本上是在四角网格上实现的。然而,早在60年代初,数学家就对如何分布平面上的取样问题进行了深入的研究,其中rogers指出,平面上的最佳分布是按六角网格形式分布的1。1991年wuthrlch和stuki 证明了方型网格和六角网格在几何意义上是相似的,并且提出了两个在六角网格上绘制直线和圆的算法2。在一个模拟的六角网格显示屏上显示表明,六角网格的确有很好的绘图特性。六角网格的优势越来
12、越明显,但是由于硬件条件的限制,人们都是在虚拟六角网格上进行研究并得出结论。虚拟六角网格的定义有多种多样,其中pseudo六角像素模拟法是一种比较常用的以四角网格模拟实现六角网格的方法。其中的sa算法对于六角像素的定址有着积极的意义。本文就是在这种背景下提出了在六角网格上进行双三次插值算法的实现,从而得到更好的目标图像。三次插值的算法有很多种,常见的有hermite三次插值,三次样条插值,双三次插值(三次卷积)等。本文采用的是三次卷积公式。1.2 研究的主要内容本论文主要研究基于六角像素图像的插值算法,重点研究双三次插值算法及其意义。具体内容包括以下几个方面:1. 确定原图的像素灰度值。创建一
13、个虚拟的六角网格系统,建立四角像素和六角像素的关系。2. 分别利用双线性插值算法和双三次插值算法求虚拟的六角结构中每个六角像素的灰度。3. 基于四角结构重建图像,并绘制显示图像。4. 计算原始图像信号和最终图像的信号噪音功率比5. 分析比较实验结果数据,得出有效的结论。1.3 研究的目的意义目前,使用六角网格的优势被充分认识。一个良好的模拟六角网格的算法,无论是对图像显示或处理的研究,还是硬件的开发都有着积极的影响。在四角结构和六角结构的转换过程中,如果有一个优秀的插值算法,那么得到的图像不仅不会失真而且清晰度方面还会有提高的可能,对以后硬件的发展也有着积极的推动作用。因此,本文对插值算法的实
14、验研究意义在于可以建立四角结构图像与六角结构图像的关系,使得在虚拟的六角结构中进行图像处理成为可能并且方便,促进了基于六角像素的图像处理研究的进一步深入和发展。第二章 虚拟六角结构分析2.1四角网格在分析六角网格之前,先看看四角网格的特点。四角网格,即四角像素,也成方形网格。四角网格以其排列整齐,像素点读取方便迅速成为当前显示设备、图像处理软件的普遍图像信息表示法。一幅图假设大小为nm,可将该图视为由n行,m列的矩阵构成,每一个四角像素占有图的某行和某列。从图2-1我们看到,四角网格排列整齐,容易定出像素点坐标,方便读取。图2-1 四角网格2.2六角网格六角网格是指平面上的点按照六角网格形式分
15、布,这种分布使每个像素对应着一个正六边形,而将六边形的中心点作为网格点如图2-2所示3。图2-2 四角网格与六角网格在四角网格中,正四边形覆盖图像,六角网格改变原来正四边形覆盖图像的原理,采用正六边形覆盖图像。如2-3所示,正六边形具有等距性的特点,显得更加匀称。除此之外,六角像素还具有一致的连接性和对称性,六角像素形状为正六边形,与真实的像素点更为接近。图2-3 六角网格具有等距性2.3六角网格的特点2.3.1四角网格与六角网格的进一步比较尽管四角网格与六角网格都可以用来表征图像,但是它们表现的方法却不尽相同,四角网格虽然容易读取,排列整齐,但是在某些图像特性上有明显的不足,比如四角网格只有
16、两个方向的对称轴,这种对称特征使图像处理不够精确。基于四角网格的图像进行旋转的时候,可能会丢失较多的图像信息。六角网络与四角网格相比,形状类似于光点,六角网络具有的一致连接性,等距性,对称性,这些良好的特性让它在表现图像信息方面显得尤其出色,表示出来的图像边缘清晰,线条也更加光滑。2.3.2六角网格的优点总的来说,与方形网格相比,六角网格具有以下优点1:(1) 所显示的直线(或曲线)看起来更加连贯。在方形网格上绘制直线(或曲线)时,屏幕上显示的线条好像是由一段段断开的水平或垂直小线段所组成,中间有很明显的断点,当直线或曲线中有一对点相邻的像素时,就会出现一个“断点”,而在六角网格上,每个像素的
17、6个相邻像素都是边相邻的,所以在直线或曲线中的每一对相邻像素之间都有一公共边,因而不会有“断开”的现象(2) 像素点的分布更加合理和紧凑正六边形与四边形相比更加相似于光点的形状设小圆点的直径长度(或像素的长度)为1,则对于一个面积为mn的显示屏,如果采用方形网格分布可以容纳mn个点;若采用六角网格分布,mn个点只占用该显示屏的2空间,即86.6 的空间因为这时点的行间距离是0866而不是1这样,整个显示屏就可容纳(约为1.155mn)个点,即点数增加了15.5 ,这表明点的密度增加了,因而可更好地表示图形与图像的细节(3)由于每个像素与其所有相邻像素之间只有一种相邻关系,这就为许多图像处理算法
18、提供了简便的实现途径,并且提高了算法的效率。传统的方形网格中的每个像素到其相邻像素的距离不等,因此其相邻像素有4邻接和8邻接两种定义。而对于六角网格,只有一种6邻接定义,所以,所有诸如区域在某一点是否连续或两点间的距离等几何性质的定义及双线性插值算法都是惟一确定的。2.4 模拟六角网格虽然六角网格有如此多的优点,但是六角网格并不能被广泛地应用于图像处理。主要的原因是,获取和显示基于六角网格的图像时,并没有相应的基于六角网格的硬件设备支持,这是更深入地进行六角网格方面的研究是个很大的障碍,所以怎么在现有的四角显示设备上显示六角样本数字图像成为一个重要的问题,幸运地是,现在我们已经有一些方法利用现
19、有的四角网格来模拟六角网格,这些方法的使用,能够发挥基于六角网格的计算机视觉和计算机图像的优势4。2.3.1四角像素错位模拟六角像素该方法主要是通过四角像素在水平方向的错位来模拟六角像素结构。如图2-4所示。在这个模拟方案中,像素的形状是方形的。总而言之,垂直方向和水平方向的取样间隔是一致的。这个方案通过设置垂直方向和水平方向一致的取样间隔使得硬件的设计简单化。然而六角像素中的等距的优点却没能在这个模型中体现,图2-4表明,如果我们标记任意两个垂直方向相邻或任意两个水平方向的相邻点的距离为1个单位,那么任意两个斜对角方向相邻的像素的距离却为25图2-4 使用半像素偏移四角像素模拟六角像素为了弥
20、补这个方案的缺点,staunton等人进行了改进。如图2-5所示,这个结构的优点是所有的取样点与它们相邻的最邻近像素点的距离相等,两个邻近像素点之间的夹角为60o ,水平取样点相距2。像素大小为12,而这样图像素比例变为2:15。图2-5 使用半像素偏移四角像素模拟六角像素2.3.2另一种方法的模拟六角结构一个这样的六角像素由四个传统的四角像素组成,而灰度值则由这四个像素的灰度平均而成,参见图2-6。这个模拟方案保存了六角结构的一个特征,那就是每个像素都有六个相邻像素,然而,这个模拟六角像素的灰度值是由四个像素的灰度平均取得的,所以影响了图像的分辨率,再者,六角结构的一个重要特征是,中心像素和
21、六领域的距离是相等的,而在这个模拟的六角结构中,这个优点没有得到保持5。图2-6 四个传统四角像素末模拟六角结构2.3.3 pseudo六角像素为了评估四角像素和六角像素的视觉效果,人们提出了pesudo六角像素。其主要思想是:基于四角像素和六角像素分别建立可比较的网格系统。一个六角像素称为一个超像素,用四角像素集模拟构造,并且模拟使得四角像素网格与六角像素网格的密度具有可比较性5。参见图2-7。图2-7模拟超像素基于了pesudo六角像素的思想,最常用、最有效的构造方法是:首先,一个四角像素分成77后的小像素,称为子像素。每个子像素的灰度为原四角像素的灰度。每个虚拟六角像素由如图2-8所示的
22、56个子像素组成,灰度值由这56个子像素灰度值取平均获得6。每个虚拟六角像素比四角像素大12.5%,因此,表示一个图像时,虚拟六角像素比四角像素少用了12.5%的像素6,但已被证明这并不影响图像的分辨率。如果将每一个像素都这样进行处理,得到一个虚拟的六角结构。在这个虚拟的六角网格中,垂直方向距离为8,斜方向上距离为8.06,近似为8,这样等距性在这里得到了很好的保持,而且几乎不会产生图像扭曲。图2-8 一个六角像素的构成2.3.4虚拟六角结构下的图像处理虚拟的六角结构仅仅存在于图像处理过程,虚拟六角像素存在于计算机的内存空间中。那么,运算处理是在虚拟的空间中进行。最后将结果映射到四角结构中显示
23、6。参见图2-9。方形网格上的原始图像虚拟六角网格上的图像在方形网格上 处理图像在六角网格上处理图像映射逆映射mam 图2-9 虚拟六角结构图像处理过程第三章 插值实验设计3.1 灰度插值算法3.1.1 最近邻插值算法(近邻取样法)最简单的灰度插值算法是最近邻插值,也叫零阶插值。最近邻插值首先将就是将经空间变换映射为。如果是非整数坐标,则寻找的最近邻,并将最近邻的灰度值赋给校正图像处的像素7。可见,最近邻插值简单直观,但是得到的图像质量不高,通常不是一个较好的插值方法。3.1.2 双线性插值法对于通常的图像处理,双线性插值很实用。它利用点的四个最近邻的灰度值来确定的灰度值。见图3-1。设的四个
24、最近邻为a,b,c,d;它们的坐标分别为,、;其灰度值分别为,。首先计算e和f这两点的灰度值,7: (公式3-1) (公式3-2)则点的灰度值为 (公式3-3)即对于一个目标像素,可以设置浮点坐标为,其中均为非负整数,为0,1区间的浮点数,则这个像素灰度值可由原图像中坐标为,、所对应的四个像素的值决定,即: (公式3-4)cdabayx图3-1双线性插值示意图双线性插值算法容易实现,能够产生区域效果。从滤波的角度看,双线性插值对图像的低频有较好的相应能力,可以看着是一个低通滤波器8。双线性插值是图像处理中比较常用的方法。3.1.3 双三次插值法双三次插值(也称协调板元),二元双三次插值公式共有
25、(31)216个系数,其一般形式可写成9: (公式3-5)双三次插值方法能够克服双线性插值和最邻近插值算法的缺点。计算精度比较高,插值效果较最近邻插值法和双线性插值法好,但是计算量大。该方法考虑一个浮点坐标(i+u,j+v)周围的16个邻点,目标像素值f(i+u,j+v)可由如下插值公式得到:其中 (公式3-6)3.2 实验的软硬件条件3.2.1 实验的硬件要求一台pc机,cpu为pii300以上或更高,内存256m以上,4.0g以上硬盘空间。由于本实验涉及的图像处理需要处理一定量的数据内容,所以适当提高硬件设备有利于实验的顺利进行,提高实验的速度。3.2.2 实验的软件要求(1) 操作系统平
26、台为winnt/win2000/winxp。(2) 编程环境为matlab7.0。matlab是有mathworks公司于1984年推出的一套科学计算软件。它具有强大的矩阵计算和数据可视化能力,一方面可以实现数据分析、优化统计、偏微分方程数值解,自动控制、信号处理等若干邻域的数学计算,另一方面可以实现二维、三维图形绘制,三维场景创建和渲染、科学计算可视化、图像处理、虚拟现实和地图制作等图形图像方面的处理10。3.3 定址方法在实验中,首先要模拟六角像素,找出四角像素和六角像素之间的关系。无论用哪种方法模拟六角像素,六角像素的定址是非常重要的,因为任何基于六角网格的图像操作,都要对准确地对每个六
27、角像素进行定位,才能对图像中像素的灰度值进行处理。在这个实验中,我们采用的是sa定址方法5。为了定位一个虚拟的六角像素,我们可以定位标记为a10i (i=1,2, ; a=1,2,3,6)的像素。首先,用矢量0,0标记地址为0的位置,矢量j,k(j,k是整数)标记一个离源0,0横向距离为j, 纵向距离为j的像素的位置,其中向右右,向下为正。 用l(a)来表示地址为a的坐标位置,这样,l(0)=0,0,从图上可以得到,l(1)=0,8, l(2)=-7,4, l(3)=-7,-4, l(4)=0,-8, l(5)=7,-4, l(6)=7,4。 图3-2 六角像素螺旋定址注意到,六角像素中标记地
28、址为10的位置,它可以由l(1)和l(2)决定,在这里的计算就是简单的矢量运算,根据矢量关系,l(10)=l(1)+2l(2);同理: l(20)=l(2)+2l(3);l(30)=l(3)+2l(4);l(40)=l(4)+2l(5);l(50)=l(5)+2l(6);l(60)=l(6)+2l(1);根据这个规律,可能容易推得:l(a10i)= l(a10i-1)+2 l(a+1)10i-1)l(610i)= l(610i-1)+2 l(10i-1)i=1,2, a=1,2,5 (公式3-7) 具体计算时l(anana1)= (公式3-8)举个例子:l(316)= l(300)+ l(10
29、)+ l(6)= l(30)+2 l(40)+ l(10)+ l(6)= l(3)+2 l(4)+2(l(4)+2 l(5)+ l(1)+2 l(2)+ l(6)=14,-323.4基于六角网格的双线性插值实验图像的双线性插值算法在四角网格系统的运用已经成熟了,而对于基于六角结构下的插值,如果我们采用pesudo六角像素,将每个四角像素细分为77的子像素,那么在六角结构下,采用sa算法来定址,对于任意一个六角结构下坐标为的坐标并一定能够找到四角坐标下的一个像素点与之对于。也就是说,假设六角像素坐标为,转化为细分前的四角像素坐标,不一定取整数。因此,这样的坐标不一定存在。于是我们就可运用双线性插
30、值和双三次插算法进行处理。对于一张四角像素组成的灰度图,可以转换为模拟六角像素并进行双线性插值,具体实现步骤如下:(1) 在四角结构下,将一个四角像素细分为77的小像素,中心小像素的灰度值为原四角像素的灰度值。(2) 利用通常意义的双线性插值算法求出其余小像素的灰度值。代码编写的关键部分:i=imread(beauty.bmp);%读取图像数据nrows,ncols=size(i);%获取图像大小。i=double(i)width = 7 * nrows; height = 7 * ncols;widthscale = 1/7; heightscale = 1/7;for x = 4:widt
31、h-4 for y = 4:height-4xx = (x+3) * widthscale; yy = (y+3) * heightscale; a=floor(x+3)/7);b=floor(y+3)/7); x11 =i(a,b); x12 =i(a,b+1); x21 =i(a+1,b); x22 =i(a+1,b+1); j(x,y) = uint8( (b+1-yy) * (xx-a)*x21 + (a+1-xx)*x11) + (yy-b) * (xx-a)*x22 +(a+1-xx) * x12) ); endend具体代码参见本论文配套光盘中的bilinearel.m文件(3)
32、 通过sa算法定址,确定六角网格的坐标,找出六角像素与四角像素之间的关系,从而得到六角像素中心子像素的灰度值。六角像素的中心点是这样定义的,假定图像在四角结构下为2m行和2n列,m和n是正整数。每个像素细分为77个子像素,为14m行和14n列。将由56个子像素构成的第一个虚拟六角像素的中心定位在7m与7m1的中间和7n的位置上11。也就是说,如图3-3所示的一个六角像素,其中心位置在p点。为了运算方便,在实验中我们取中心位置为图中第4行第5列的像素点。图3-3六角像素的中心位置(4) 在六角结构下,每个六角像素由56个子像素构成。以(3)中求出的中心子像素点为插值基点,通过双线性插值算法再求出
33、六角结构像素中的其它小像素的灰度值。对于每一个六角像素,我们可以通过(公式3-4)求出六角像素中心子像素的坐标12。设x是任意给定的六角像素点,那么在原图像空间,存在四个四角像素a,b,c和d,如图3-3 所示。定义a,b,c和d的坐标分别为,。设 , ,得到12设为图像的灰度函数,定义像素的灰度值,那么通过下列的双线性插值计算的灰度值:代码编写的关键部分:%六角像素中心小像素坐标(m,n)%计算六角小像素的灰度 if (floor(m)=0)|(floor(n)=0) y(x,y)=j(1,1);elseif (floor(m)=m)&(floor(n)=n) y(x,y)=j(floor(
34、m),floor(n);elseif(floor(m)nrows/7-1) & (floor(n)ncols/7-1)x11=double(j(floor(m),floor(n);x12=double(j(floor(m),ceil(n);x21=double(j(ceil(m),floor(n);x22=double(j(ceil(m),ceil(n); wx1=double(1-(m-floor(m);wx2=double(m-floor(m);wy1=double(1-(n-floor(n);wy2=double(n-floor(n); y(x,y)=uint8(wx1*wy1*x11+
35、wx2*wy1*x21+wx1*wy2*x12+wx2*wy2*x22); elsey(x,y)=j(floor(m),floor(n)end 具体代码参见本论文配套光盘中的bilinearw.m文件(5) 四角结构下重建图像,并显示。本文采取将49个小像素的平均值作为四角像素的灰度值。也可以用中心小像素的灰度值作为四角像素的灰度值。两者效果相当。代码编写的关键部分:for x = 1:nrows/7 for y = 1:ncols/7 k=x-1; t=y-1; j(x,y)=uint8(1/49)*(sum(i(7*k+1:7*k+7,7*t+1)+sum(i(7*k+1:7*k+7,7*
36、t+2)+sum(i(7*k+1:7*k+7,7*t+3)+sum(i(7*k+1:7*k+7,7*t+4)+sum(i(7*k+1:7*k+7,7*t+5)+sum(i(7*k+1:7*k+7,7*t+6)+sum(i(7*k+1:7*k+7,7*t+7); endendend 显示缩小后的效果3.5基于六角网格的双三次插值实验3.5.1传统的双三次插值算法双三次插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。通过双三次插值创造一个像素,而这个像素的灰度值是由它附近的4 x 4邻近像素值推算出来的,因此精确度较高。双三次插值方法通常运用在一部分图像处理软件、打印机驱动程
37、序和数码相机中,对原图像或原图像的某些区域进行放大。本文采用双三次的卷积公式。双三次插值算法重建的图像边缘更清晰,画质更高,但也有不足之处就是计算量大,在计算机上运行耗时长,效率较低。3.5.2 改进后的基于六角网格的双三次插值算法基于方形网格上的双三次插值算法,虽然能取得令人满意的效果,与双线性插值类似,如果要用在基于六角网格的图像上,需要对此双三次插值方法进行改进。因为在方形网格中,对图像进行双三次插值时,对图像的每个像素灰度的读取是按每行每列顺序进行的,而我们所要做的工作是希望是在sa定址算法的基础上来重新计算像素的灰度值,以达到重建的目的。对于六角结构下的小像素的灰度值的计算采用双三次
38、插值法,具体的对于每个六角像素,在进行sa算法定址后,对其六角网格坐标分别除以7对应于原图,即六角像素的坐标为,除以7之后对应于原图的坐标为,由于六角像素的坐标不同与四角像素的坐标,除以7之后,会出现浮点的情况,这样于是,可以通过双三次插值来处理。具体地,对的坐标取整,得到坐标,取原图中它周围的15个点的灰度值:, ,。上述共16个插值基点,通过双三次插值计算出小六角像素的灰度值。以此类推,得到所有小六角像素的灰度值。3.5.3 实现基于六角网格的双三次插值法对于一张四角像素的灰度图,转换为基于六角像素的灰度图并进行双三次插值,其中的步骤与双线性插值算法处理六角像素相似。不同之处在于后者使用双
39、三次插值算法对中心六角像素的六角网格坐标进行双三次插值。对于一张四角像素组成的灰度图,可以转换为模拟六角像素并进行双线性插值,具体实现步骤如下:(1) 在四角结构下,将一个四角像素细分为77的小像素,中心小像素的灰度值为原四角像素的灰度值。(2) 通过双线性插值求出小像素的灰度值。(3) 通过sa算法定址,确定六角网格的坐标,找出六角像素与四角像素之间的关系,从而得到六角像素中心子像素的灰度值。(4) 通过六角网格中心小像素对应的六角网格坐标以及小像素在原图中对应像素的周围16个邻点像素的灰度值进行双三次插值算法,从而算出小六角像素的灰度值。双三次插值代码编写的关键部分:%计算六角小像素的灰度
40、方法:双三次插值 if (floor(m)=1)|(floor(n)=1) y(x,y)=j(1,1);elseif (floor(m)=m)&(floor(n)=n) y(x,y)=j(floor(m),floor(n);elseif (floor(m)nrows/7-1) & (floor(n)ncols/7-1) i22=double(j(floor(m),floor(n); i12=double(j(floor(m)-1,floor(n); i11=double(j(floor(m)-1,floor(n)-1); i21=double(j(floor(m),floor(n)-1); i
41、31=double(j(ceil(m),floor(n)-1); i41=double(j(ceil(m)+1,floor(n)-1); i42=double(j(ceil(m)+1,floor(n); i32=double(j(ceil(m),floor(n); i33=double(j(ceil(m),ceil(n); i23=double(j(floor(m),ceil(n); i13=double(j(floor(m)-1,ceil(n); i14=double(j(floor(m)-1,ceil(n)+1); i24=double(j(floor(m),ceil(n)+1); i34
42、=double(j(ceil(m),ceil(n)+1); i44=double(j(ceil(m)+1,ceil(n)+1); i43=double(j(ceil(m)+1,ceil(n); s=double(zeros(8); u=m-floor(m); s(1)=u+1;s(2)=u;s(3)=u-1;s(4)=u-2; v=n-floor(n); s(5)=v+1;s(6)=v;s(7)=v-1;s(8)=v-2; for i=1:8 if (abs(s(i)=0) s(i)=1-2*power(abs(s(i),2)+power(abs(s(i),3); elseif (abs(s(
43、i)=1) s(i)=4-8*abs(s(i)+5*power(abs(s(i),2)-power(abs(s(i),3); else s(i)=0; end endy(x,y)=uint8(s(1) s(2) s(3) s(4)*i11 i12 i13 i14;i21 i22 i23 i24;i31 i32 i33 i34;i41 i42 i43 i44*s(5);s(6);s(7);s(8);elsey(x,y)=j(floor(m),floor(n); end 具体代码参见本论文配套光盘中的bicubic.m文件 (5) 四角结构下重建图像,并显示。第四章 实验结果及分析4.1 实验结果
44、按照第3章插值实验设计的方法,我们选用了两张人物灰度图像lena_new.bmp和beauty.bmp分别进行实验,将实验结果输出的图像与原图像进行分析比较得到以下结果:图4-1(a)是基于方形网格的lena_new.bmp原图,图(b)是经过双线性插值重建后的效果图,图(c)是经过双三次插值重建后的效果图。 (a)lena_new.bmp原图 (b) 双线性插值重建后 (c) 双三次插值重建后图4-1 lena_new.bmp插值实验图4-2(a)是基于方形网格的beauty.bmp原图,图4-2(b)是经过双线性插值重建后的效果图,图4-2 (c) 是经过双三次插值重建后的效果图: (a)
45、原图 (b) 双线性插值重建后 (c) 双三次插值重建后图4-2 beauty.bmp插值实验4.2 结果分析图像质量的评价方法主要有两种:主观的度量方法与客观的度量方法。主观评价方法就是让观察者根据一些事先规定的评价尺度或自己的经验,对测试图像按视觉效果提出质量判断,并给出质量分数,对所有观察者给出的分数进行加权平均,所得的结果即为图像的主观质量评价13。图4-1和4-2所得的视觉效果实际上就是一种主观的评价,从图4-1和4-2可以看出双三次插值重建效果比双线性插值效果好。图像质量的客观评价是指用畸变图像偏离原始图像的误差来衡量崎变图像的质量13。经常使用的评价方法有最大绝对值误差maxe(
46、maximum error)、均方误差 mse(root mean square error)、均方根误差 rmse(root mean square error)及信噪比snr和峰值信噪比psnr(peak signal to noise ratio)。信噪比最大绝对值误差maxe、均方根误差 rmse及峰值信噪比psnr分别定义如下:14 (公式4-1)14 (公式4-1)14 (公式4-3)14,即: (公式4-4)为了能更进一步地评价两种插值方法实现效果的优劣,本文计算了双线性插值重建后图像和双三次插值处理重建后图像与原图的最大绝对值误差maxe(maximum error)、均方根误
47、差 rmse(root mean square error)和峰值信噪比psnr(peak signal to noise ratio)。表4-1和表4-2所示分别为lena_new.bmp插值实验和beauty.bmp插值实验的各种客观指数。表4-1 lena_new.bmp插值实验的各种客观指数方法 信噪比 maxermsepsnr双线性插值重建图像 18415.635024.2489双三次插值重建图像13413.4234 25.5729表4-2 beauty.bmp插值实验的各种客观指数方法 信噪比 maxermsepsnr双线性插值重建图像 20422.153921.2218双三次插值
48、重建图像15918.7651 22.6839从表4-1可以看出,改进后的双三次插值算法重建图像的均方根误差rmse和峰值信噪比psnr较大,rmse和psnr的值越大说明与越接近;而最大绝对误差较小,也说明了与越接近。由此可以得出;在六角结构中双三次插值效果也是比双线性插值效果要好得多。结论本文在虚拟的六角结构下,研究了图像的双三次插值算法,并通过实验比较了六角结构下的图像双线性插值算法与图像双三次插值算法的插值效果,得到了双三次插值效果优于双线性插值效果的结论。 本文首先分析了六角网格的特点和六角网格与四角网格的比较,六角网格上模拟四角网格的各种方法。在pseudo六角像素的基础上,将四角像
49、素细分为77的小像素,使用sa算法对六角像素进行定址实现,找出六角网格下的像素与四角网格下的像素之间的关系。其次,在虚拟的六角网格下改进图像的双三次插值算法和双线性插值算法,对像素的灰度值进行重建,通过双三次插值算法实验和双线性插值算法实验得到插值效果。然后,实验结果进行了分析比较,分别计算了两种插值算法的最大绝对值误差maxe(maximum error)、均方根误差 rmse(root mean square error)和峰值信噪比psnr(peak signal to noise ratio),由实验效果图和各种数据得知,用改进的双三次插值算法,对灰度图像重建的效果比较理想,该算法在重
50、建过程中,插值效果更好,图像质量高,纹理细致,插值公式简单,容易理解和实现。实验表明在六角形象素下图像双三次插值具有可行性、有效性和优越性。本次实验所消耗的时间比较长,在今后的工作中应考虑进一步优化算法和程序,提高插值速度。同时对六角像素的中心位置的确定还可进一步讨论,在本次实验中为了简便起见,将插值基点定位在接近中心的位置,而并非精确的中心位置。可以将插值基点定位在六角像素精确的中心位置,希望得到更好的插值效果。此外还可研究六角结构下的其它插值算法,如参考文献15中所涉及的hermite插值算法和三次样条插值算法等。谢辞 感谢李剑敏老师的悉心指导,李老师总是在百忙之中尽量的抽出时间来给我们分析、解决研究和设计中所遇到的各种问题。感谢毛路,吴建邦,庄闽力同学,在学习和研究中他们都是我的良师益友,在跟他们的讨论中我学习到了很多知识,思路也更加清晰。在此,我要对所有帮助了我的老师、同学们表示诚挚的谢意!参考文献1 刘勇奎,周晓敏,颜叶.六角网格上的图像处理算法的研究.计算机工程与设计,2001,22(5):71-75.2 刘勇奎,邹善举.六角网格上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论