一种基于Python插值的图像修正方法技术

技术编号:35703387 阅读:18 留言:0更新日期:2022-11-23 14:58
本发明专利技术提供一种基于Python插值的图像修正方法,包括:(1)对原始图像进行采样,从图像中筛选出非NAN位置,采用Python的griddata插值算法对非NAN位置形成的非NAN区域进行插值;(2)从经过步骤(1)插值后的数据中筛选出NAN位置,采用Python的RBF插值算法对NAN位置形成的NAN区域进行插值;(3)从经过两次插值后的数据中筛选出NAN位置,构建修正矩阵并对原始图像进行阴影修正。本发明专利技术弥补了python中griddata不支持外插值算法的缺陷,实现的插值结果与matlab的griddedInterpolant的结果非常接近,可以作为使用python需要外插值的实现方案。可以作为使用python需要外插值的实现方案。

【技术实现步骤摘要】
一种基于Python插值的图像修正方法


[0001]本专利技术属于图像处理
,尤其涉及一种基于Python插值的图像修正方法。

技术介绍

[0002]摄像头拍摄的图像的边缘部分存在阴影,通常需要对阴影部分进行修正,使得边缘部分尽可能与其他部分保持一样的亮度,在此过程中需要使用插值算法。网格插值算法是一种常用的图像处理技术,不同的编程语言会有不同的实现方式,支持的程度也不同,比如matlab的网格插值算法既支持外插值又支持内插值,而python的网格插值算法仅仅支持内插值,对于FOV(视场角)特别大的摄像头,我们常常需要去除图像边缘角落,此时将边缘的数据设置为NAN,对于这种情况,当我们将matlab程序的运行结果和相应的python程序的运行结果比较,如果算法用到网格插值,两者的结果有可能会有很大差异,由于python对网格外插值算法和处理NAN不够完善,导致结果不是很准。

技术实现思路

[0003]本专利技术提供一种基于Python插值的图像修正方法,弥补了python中griddata不支持外插值的缺陷。
[0004]本专利技术提供的基于Python插值的图像修正方法,包括:
[0005](1)对原始图像进行采样,从图像中筛选出非NAN位置,采用Python的griddata插值算法对非NAN位置形成的非NAN区域进行插值;
[0006](2)从经过步骤(1)插值后的数据中筛选出NAN位置,采用Python的RBF插值算法对NAN位置形成的NAN区域进行插值;
>[0007](3)从经过两次插值后的数据中筛选出NAN位置,将NAN位置的数据置为NAN;根据第二次插值后获得的数据构建修正矩阵,根据修正矩阵对原始图像进行阴影修正,修正矩阵中的数据为NAN表示无需对原始图像的相应位置进行阴影矫正。
[0008]优选地,所述步骤(1)具体为:对原始图像按照块进行下采样后取平均值,得到缩略图,然后将缩略图中的每个像素值除以缩略图中像素最大的数值,得到该块的基础数据shading;从基础数据shading中筛选出非NAN位置,建立插值函数z2=f(axisx2,axisy2),其中,z2为非NAN的位置的像素数值,axisx2、axisy2分别是该位置的横坐标和纵坐标;采用Python自带的插值算法griddata求出插值函数f,将该块对应的原始图像坐标(axisx,axisy)作为插值函数f的输入,输出的就是该块对应的原始图像所有位置的插值数据z3。
[0009]优选地,所述步骤(2)具体为:从插值数据z3中筛选出第一次插值后的NAN位置,该位置的坐标为(axisx_nan,axisy_nan);建立新的插值函数z2=f1(axisx2,axisy2),采用Python自带的插值算法RBF求出新的插值函数f1;将坐标(axisx_nan,axisy_nan)输入f1,从而求出第一次插值之后原始图像的NAN位置的数据z_nan,然后根据坐标(axisx_nan,axisy_nan)将z_nan赋值给对应坐标的z3,得到shading_profile。
[0010]优选地,所述步骤(3)中的筛选出NAN位置具体为:根据基础数据shading中的NAN
位置,推测shading_profile的中的NAN位置,也就是,坐标(shading_profile_axisx,shading_profile_axisy)为NAN位置,其中,shading_profile_axisx=x*bin_size+start_x+interval,shading_profile_axisy=y*bin_size+start_y+interval,x、y分别是NAN位置对应的原始图像的横坐标和纵坐标,start_x、start_y分别是原始图像横向下采样的起始横坐标、起始纵坐标,interval表示[

bin_size,bin_size]的数组,所述块为正方形,bin_size为所述块的边长。
[0011]优选地,如果坐标(shading_profile_axisx,shading_profile_axisy)不在原始图像的长宽范围之内,则将该坐标剔除。
[0012]优选地,筛选非NAN位置的方式为,设置一个阈值,像素数值大于阈值的位置为非NAN位置。
[0013]本专利技术弥补了python中griddata不支持外插值算法的缺陷,实现的插值结果与matlab的griddedInterpolant的结果非常接近,可以作为使用python需要外插值的实现方案。本专利技术兼顾了速度和内存的考虑,如果全部使用RBF插值算法,虽然支持外插值,但是速度及其慢,需要的内存也非常大。
附图说明
[0014]图1为采用本专利技术插值与matlab插值比较图。
具体实施方式
[0015]本专利技术提供的基于Python插值的图像修正方法,核心在于以下三步:
[0016]1.采用griddata插值算法,处理图1中的空白区域,即,对非NAN区域进行插值,此时能够将大部分的数据实现插值,只剩余边缘需要忽略的数据。采用griddata处理大部分数据优点是快速,占用内存少。
[0017]2.采用RBF插值算法,处理图1中的黑色区域,即,对第一次插值后的NAN区域进行插值,这样RBF处理的数据量少,虽然RFB耗时,占用内存大,但是由于处理的数据量偏少,还是可以快速实现。
[0018]3.找出经过外插值后,应该为NAN的位置,然后将结果中需要忽略的数据置为NAN。根据第二次插值之后获得的数据(包括NAN)构建修正矩阵,该修正矩阵中大部分的数据是实数,只有极少的数据是NAN(在边缘),修正矩阵中的数据为NAN表示无需对原始图像的相应位置进行阴影矫正。根据插值之后的修正矩阵,对原图进行阴影修正,使得原图的亮度趋于一致。
[0019]本专利技术基于Python的一些算法实现图像插值,可以达到matlab提供的算法的插值效果,具体如下:
[0020]第一步:整幅图像image横坐标用axisx表示,纵坐标用axisy表示,每一个坐标(axisy,axisx)对应的像素的值用z表示。将整幅图像image按照块进行下采样取平均值,得到每一个块的缩略图image1。块通常选取为正方形(bin_size*bin_size),这样方便计算,也可以是长方形等其他形状。然后将image1除以image1中像素最大的数值,得到插值的基础数据shading,同时记录原始图像下采样过程中的每一个块的起始坐标(axisx1,axisy1)。取出shading中非NAN位置(shading_non_nan_index)的坐标,然后根据这个坐标,
选出shading中非NAN位置的数据z2,以及对应的坐标(axisx2,axisy2),然后建立插值函数z2=f(axisx2,axisy2),此时数据z2、axisx2、axisy2全部为已知数据,并且z2中不包含NAN,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Python插值的图像修正方法,其特征在于,包括:(1)对原始图像进行采样,从图像中筛选出非NAN位置,采用Python的griddata插值算法对非NAN位置形成的非NAN区域进行插值;(2)从经过步骤(1)插值后的数据中筛选出NAN位置,采用Python的RBF插值算法对NAN位置形成的NAN区域进行插值;(3)从经过两次插值后的数据中筛选出NAN位置,将NAN位置的数据置为NAN;根据第二次插值后获得的数据构建修正矩阵,根据修正矩阵对原始图像进行阴影修正,修正矩阵中的数据为NAN表示无需对原始图像的相应位置进行阴影矫正。2.如权利要求1所述的基于Python插值的图像修正方法,其特征在于,所述步骤(1)具体为:对原始图像按照块进行下采样后取平均值,得到缩略图,然后将缩略图中的每个像素值除以缩略图中像素最大的数值,得到该块的基础数据shading;从基础数据shading中筛选出非NAN位置,建立插值函数z2=f(axisx2,axisy2),其中,z2为非NAN的位置的像素数值,axisx2、axisy2分别是该位置的横坐标和纵坐标;采用Python自带的插值算法griddata求出插值函数f,将该块对应的原始图像坐标(axisx,axisy)作为插值函数f的输入,输出的就是该块对应的原始图像所有位置的插值数据z3。3.如权利要求2所述的基于Python插值的图像修正方法,其特征在于,所述步骤(2)具体为:从插值数据z3中筛选出第一次插值后的NAN位置,该位置的坐标为(axisx_nan,axisy_nan);建立新的插值函数z2=f1(axisx2,axisy2),采用Python自带的插值算法RBF求出新的插值函数f1;...

【专利技术属性】
技术研发人员:王云龙邹捷
申请(专利权)人:南通嘉骏信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1