一种灰度图像快速三次样条插值方法及系统与流程

文档序号:36012849发布日期:2023-11-17 07:31阅读:26来源:国知局
一种灰度图像快速三次样条插值方法及系统与流程

本发明涉及数字图像处理,特别涉及一种灰度图像的快速三次样条插值方法及系统。


背景技术:

1、数字图像像素的灰度值是离散的,为了对图像进行放大或提高分辨率等,通常会对图像进行插值处理,即对原来在整数点坐标上的像素值进行插值生成连续的曲面,然后在插值曲面上重新采样以获得缩放图像像素的灰度值。实际应用中,常利用插值技术增加图形数据,以便在打印或以其他形式输出时,能够增大打印面积及(或)分辨率。

2、目前,数字图像的常用插值方法主要有三种:拉格朗日插值法、分段线性插值法和三次样条插值法。其中,拉格朗日插值法为了保证插值正确,需要等待插值序列完全到达后才能开始插值,不适合可编程硬件电路实现;分段线性插值法由于分段插值函数在节点处导数不连续,不适合于对插值精度有一定要求的场景;而三次样条插值既可以在数字图像输入同时进行,插值输出有较高精度,且三次样条插值法所涉及计算可并行执行提高效率,能够在可编程硬件电路上实现。

3、传统的三次样条插值过程中,对每个线性插值方程均计算插值系数,插值系数和待插值图像像素不相关,对每一行待插值图像计算相同参数会大大影响算法效率,严重增加不必要的资源消耗,硬件实现实时性差。传统的拉格朗日插值法每增加一个新的插值点时,整个插值函数就需要重新构建,这大大增加了运算量,且不可灵活的运用硬件实现。传统的分段线性插值法,由于仅依靠像素的邻域实现插值,未考虑到相邻像素灰度的不连续性以及灰度的变化方向,当需求插值精度较高时,不能满足设计需求。


技术实现思路

1、本公开提供一种灰度图像快速三次样条插值方法和系统,其基于改进的三次样条插值线性方程组解算方法,解决三次样条插值硬件实现实时性差的缺陷,可灵活调整图像插值维度、插值后图像大小和插值步长,并且该方法及系统接口简单,可应用到fpga等可编程逻辑电路器件中,实现灰度图像快速三次样条插值。

2、本公开提供的三次样条插值方法主要包括三部分,即参数预加载、插值线性方程组解算和插值计算,即:

3、s1,参数预加载,即:根据预设参数,包括插值步长、待插值图像大小和插值后图像大小,计算插值解算所需的各项系数并分别缓存;该项计算在待插值图像输入前启动,并在图像输入前完成;

4、s2,待插值图像按行或列逐像素输入,当前像素和其相邻的两个像素经计算后组成插值线性方程组右侧因变量序列,形成三次样条插值线性方程组;依靠输入的图像行或者列像素解算所述三次样条插值线性方程组,将得出的二次微分值序列存入缓存中;

5、s3,在解算插值线性方程组的同时,利用待插值图像像素和解算的二次微分值序列构建三次样条插值函数,逐像素计算出待插值位置的拟合值。

6、进一步地,步骤s1中参数预加载的方法具体包括以下步骤:

7、在待插值图像输入前,根据预设的插值参数,包括:待插值图像大小、插值后图像大小m*n、插值步长hi{i=0,1,2,...n-1or i=0,1,2,...m-1}、以及边界条件参数,从第一插值线性方程开始计算三次样条插值线性方程组的系数矩阵a,该系数矩阵为严格对角占优的三对角矩阵;

8、利用系数矩阵a的主对角线元素序列d=[a11,a22,a33,...,ann]和系数矩阵下对角线元素序列l=[a21,a32,...,a(n-1)n,0],计算权重序列w=[w1,w2,...,wn];

9、用计算出的权重序列w和上对角线元素序列u=[0,a12,a23,...,a(n-1)n]修正系数矩阵主对角线元素序列d;

10、系数矩阵的上对角线序列u、下对角线序列l、主对角线序列d和权重序列w分别存入缓存;

11、在系数矩阵计算的同时,根据插值步长hi对图像单一维度过采样,利用过采样后的值计算插值多项式系数组,即:

12、ci=[a,b,a3,b3]i={1,2,...,m}or i={1,2,...,n}

13、将插值多项式系数组ci和过采样后的自变量相邻的两索引序号存入缓存。

14、进一步地,步骤s2中,所述三次样条插值线性插值方程组包括:

15、ak=y

16、其中,

17、在自然边界条件下:

18、

19、在固定边界条件下:

20、

21、在自然边界条件下:

22、

23、在固定边界条件下:

24、

25、k为二次微分值序列。

26、进一步地,所述步骤s2中,解算所述三次样条插值线性方程组的计算过程包括正向替换和反向替换,具体包括如下步骤:

27、图像数据按行或列方向开始逐行或逐列输入,从第二像素开始,当前位置正向替换的中间结果由当前图像像素和加权后的上一个相邻图像像素计算得出,当前权重wi从权重序列缓存中读出;

28、正向替换的中间结果组合成一个ddr读写单元,当正向替换的中间结果存满一个ddr读写单元后,将中间结果存ddr中,并记录最后写入ddr的地址指针;

29、待正向替换完成后,最后一个插值线性方程到第一个插值线性方程计算出的中间结果依次从ddr读出,计算二次微分值序列m=[m1,m2,…,mn],最后一个插值线性方程的二次微分值mn由该方程的中间结果和对应系数矩阵主对角线值ann计算得出,其他插值线性方程的二次微分值由前一个计算出的二次微分值、当前插值线性方程的中间结果、系数矩阵主对角线序列对应值和系数矩阵上对角线序列对应值共同决定,二次微分值序列从后至前依次输出。

30、进一步地,所述步骤s3具体包括:

31、从缓存中从最后一个到第一个读出预加载缓存中插值多项式系数组和索引序号;

32、根据读出的索引序号,从二次微分值序列缓存和ddr中分别读出当前待插值索引对应和当前待插值索引下一个对应的二次微分值和图像像素;

33、将插值多项式系数组和当前待插值索引对应和待插值索引对应的下一个的二次微分值和图像像素组成三次样条插值函数,计算得出待插值位置的拟合值。

34、本公开还提供了一种应用上述方法的灰度图像快速三次样条插值计算装置,包括:

35、参数预加载单元,包括:

36、参数预加载计算模块:根据预设的插值参数,计算权重序列修正后的系数矩阵及插值多项式系数组,将系数矩阵的上对角线、下对角线、主对角线以及插值多项式系数组分别保存到预加载参数缓存模块对应的缓存区域;

37、预加载参数缓存模块:用于缓存所有可复用参数;

38、三次样条插值计算单元,包括:

39、三对角矩阵解算模块:依靠输入的图像行或者列像素解算三次样条插值线性方程组,计算过程分成正向替换和反向替换,输出二次微分值序列到缓存中;

40、插值计算模块:利用参数预加载计算模块计算出的插值多项式系数组、三对角矩阵解算模块二次微分值序列以及待插值图像序列构建三次样条插值函数,计算出对应位置的拟合值;

41、ddr读写控制模块:对系统中对ddr读写请求仲裁管理,防止出现由于ddr接口繁忙导致读写请求被忽略的情况;

42、插值计算控制模块:读插值多项式系数组缓存,并根据自变量两索引序号从ddr或二次微分值序列缓存中取对应值。

43、进一步地,所述装置在插值过程采用多路选通的模式,即一行或一列图像输入完成后,下一行或列图像将切换到另一所述三次样条插值计算单元执行。

44、本公开通过对三次样条插值线性方程组解算方法进行改进,实现了灰度图像的快速三次样条插值方法,可应用到fpga等可编程逻辑电路器件中。

45、与现有技术相比,本公开的有益效果是:(1)通过对相同计算的归并,即参数预加载部分的实现,摒弃了不必要的资源消耗,提升了算法效率;(2)插值过程采样多路选通的模式,一行或一列图像输入完成后,下一行或一列图像将切换到另一三次样条插值计算单元执行,多单元并行执行,利用fpga并行性优势,保证了图像插值算法的实时性;(3)对图像进行串行处理,可以在资源有限的集成器件上实现灰度图像快速三次样条插值的应用;(4)可广泛应用,特别是在图片分辨率较高时,如空间碎片图像、全息图像、医疗三维影像、遥感立体影像等,该算法性能表现优异。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1