用于图像处理的逆向映射表的获取方法及装置与流程

文档序号:11135229阅读:1012来源:国知局
用于图像处理的逆向映射表的获取方法及装置与制造工艺

本发明属于图像处理技术领域,尤其涉及用于图像处理的逆向映射表的获取方法及装置。



背景技术:

映射表技术是计算机图像处理领域中的重要方法。在传统的图像变形处理过程中,输入图像中任意像素点P(x,y),经过预先设置好的函数f1和f2的变换处理后,对应到输出图像中的像素点P’(x’,y’),其中x’=f1(x,y),y’=f2(x,y)。但上述变换过程较为复杂,在对每帧图像的每个点进行运算时会导致耗时较大,在很多应用场合下无法实现实时处理,因此,通过映射表技术,将(x,y)和(x’,y’)之间的对应关系事先计算得到并保存到映射表中,实际应用时无需再进行计算,只要查找映射表即可知道(x,y)的对应点坐标(x’,y’),运行效率则会大大提高,非常适用于需要实时处理的场景。

通过以上描述可知,映射表技术由于可以将大量的计算过程放入图像预处理环节,因此运行效率极高。通常,由于显示方式的限制,输入图像中像素点的坐标是整数型的(即任一点P(x,y)中,x、y为整数),经过预设函数f1和f2对该点进行映射后,得到的对应点的坐标往往是浮点型的(即对应点P’(x’,y’)中,x’、y’为实数)。又由于输出图像同样受到显示方式的限制,因此需要将对应点坐标从浮点型改成整数型,而实际操作中只能通过对浮点数坐标取整来将对应点坐标从浮点型改成整数型,由此,在图像处理过程中若采用这样的正向映射表(从输入图像坐标映射到输出图像坐标)进行查表操作,会导致输入图像上的不同点映射至输出图像上相同点,或者输出图像上的某些点却没有映射结果等问题,产生映射效率低,输出图像存在空洞,输出图像画面质量差的现象。因此,在实际应用中,正向映射表是很少使用的,被广泛采用的是逆向映射表(从输出图像坐标映射到输入图像坐标),即,输出图像中任意像素点P’(x’,y’),经过函数变换处理后,对应到输入图像中的对应像素点P(x,y),其中x=f1-1(x’,y’),y=f2-1(x’,y’)。采用逆向映射表,可以完全避免正向映射表使用过程中可能产生的上述问题。然而,在有些应用场合,坐标映射的函数关系非常复杂,难以从正向映射函数推导求出逆向映射函数。如投影仪柱面幕布投影变形过程中所采用的正向映射函数形式相当复杂,通过该正向映射函数很难求得逆向映射函数的精确解,从而会对最终输出图像的画面质量带来影响。



技术实现要素:

有鉴于此,本发明实施例提供了用于图像处理的逆向映射表的获取方法及装置,以解决在现有的图像处理过程中,存在很难通过正向映射函数求得逆向映射函数的精确解的问题。

第一方面,提供了一种用于图像处理的逆向映射表的获取方法,包括:

通过遍历输入图像的整数型像素坐标Pi(xint,yint)并查询正向映射表,获取所述输入图像对应的输出图像的浮点型像素坐标P’i(x’float,y’float),其中,0<i<Wsrc*Hsrc,所述Wsrc*Hsrc为所述输入图像的像素分辨率;

遍历所述输出图像的整数型像素坐标Pj(mint,nint),并确定与所述Pj(mint,nint)对应的P’i(x’float,y’float),其中,0<j<Wdst*Hdst,所述Wdst*Hdst为所述输出图像的像素分辨率;

按照所述输出图像中浮点型像素坐标及其对应的整数型像素坐标之间的距离,对所述P’i进行排序,获取所述距离最小的N个所述P’i,所述N为整数;

基于所述距离最小的N个所述P’i对应的所述距离,以及基于所述距离最小的N个所述P’i在所述正向映射表中对应的N个Pi,建立逆向映射表。

第二方面,提供了一种用于图像处理的逆向映射表的获取装置,包括:

获取单元,用于通过遍历输入图像的整数型像素坐标Pi(xint,yint)并查询正向映射表,获取所述输入图像对应的输出图像的浮点型像素坐标P’i(x’float,y’float),其中,0<i<Wsrc*Hsrc,所述Wsrc*Hsrc为所述输入图像的像素分辨率;

确定单元,用于遍历所述输出图像的整数型像素坐标Pj(mint,nint),并确定与所述Pj(mint,nint)对应的P’i(x’float,y’float),其中,0<j<Wdst*Hdst,所述Wdst*Hdst为所述输出图像的像素分辨率;

排序单元,用于按照所述输出图像中浮点型像素坐标及其对应的整数型像素坐标之间的距离,对所述P’i进行排序,获取所述距离最小的N个所述P’i,所述N为整数;

建立单元,用于基于所述距离最小的N个所述P’i对应的所述距离,以及基于所述距离最小的N个所述P’i在所述正向映射表中对应的N个Pi,建立逆向映射表。

在本发明实施例中,采用数值模拟的方式将正向映射表合成为逆向映射表,生成的逆向映射表保证了较高的映射精度,这样便使得在无法得到合适的映射方向及精确的映射关系的情况下,仍然能够保证高效率和高质量的映射,有利于提高图像处理过程的输出质量。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的用于图像处理的逆向映射表的获取方法的实现流程图;

图2是本发明实施例提供的用于图像处理的逆向映射表的获取方法的实验示例图;

图3是本发明实施例提供的用于图像处理的逆向映射表的获取装置的结构框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

图1示出了本发明实施例提供的用于图像处理的逆向映射表的获取方法的实现流程,详述如下:

在S101中,通过遍历输入图像的整数型像素坐标Pi(xint,yint)并查询正向映射表,获取所述输入图像对应的输出图像的浮点型像素坐标P’i(x’float,y’float),其中,0<i<Wsrc*Hsrc,所述Wsrc*Hsrc为所述输入图像的像素分辨率。

在S102中,遍历所述输出图像的整数型像素坐标Pj(iint,iint),并确定与所述Pj(mint,nint)对应的P’i(x’float,y’float),其中,0<j<Wdst*Hdst,所述Wdst*Hdst为所述输出图像的像素分辨率。

具体地,通过对所述输出图像的浮点型像素坐标P’i(x’float,y’float)进行取整操作,得到所述输出图像的浮点型像素坐标P’i(x’float,y’float)对应的整数型像素坐标,之后,在所述取整操作得到的整数型像素坐标中,查找与所述输出图像的整数型像素坐标Pj(mint,nint)相同的整数型像素坐标,并将该整数型像素坐标对应的所述输出图像的浮点型像素坐标P’i(x’float,y’float),确定为与所述Pj(mint,nint)对应的P’i(x’float,y’float)。

在S103中,按照所述输出图像的浮点型像素坐标与对应的所述输出图像的整数型像素坐标之间的距离,对所述P’i进行排序,获取所述距离最小的N个所述P’i,所述N为整数。

具体地,S103可以通过以下方式执行:

按照对所述P’i进行排序,其中,所述Dist为所述距离。

在本发明实施例中,所述N为精度系数,一般取大于4小于32的整数,精度系数越大,求得的逆向映射表越精确,但相对地,运算复杂度也越高,因此,在执行S103之前,可以对N的值进行设置。

在S104中,基于所述距离最小的N个所述P’i对应的所述距离,以及基于所述距离最小的N个所述P’i在所述正向映射表中对应的N个Pi,建立逆向映射表。

作为本发明的一个实施例,建立的逆向映射表中,所述输出图像的整数型像素坐标Pj(mint,nint)对应输入图像的浮点型像素坐标p’j(m’float,n’float),

其中,

令S103中获取到的Dist最小的N个P’i为P’1~P’N,这N个P’i对应的Dist分别为Dist1~DistN,而这N个P’i在正向映射表中对应的输入图像的像素点坐标分别为P1(xint,1,yint,1)~PN(xint,N,yint,N),则可以确定出逆向映射表中对应的输入图像的浮点型像素坐标,对于输出图像中的任意像素点pj的坐标(mint,nint),通过该近似的逆向映射表,可查得输入图像中对应像素点p’j的坐标(m’float,n’float),该坐标为浮点型,在实际使用中需要采用插值方法进行显示,该采用插值方法进行显示是图像算法中的常见算法,在此不赘述。

在本发明实施例中,采用数值模拟的方式将正向映射表合成为逆向映射表,生成的逆向映射表保证了较高的映射精度,这样便使得在无法得到合适的映射方向及精确的映射关系的情况下,仍然能够保证高效率和高质量的映射,有利于提高图像处理过程的输出质量。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

示例性地,在使用投影仪将图像投影到幕布时,由于投影仪的位置不与幕布平行,或者幕布本身存在形变,因此需要将输出图像做一定程度的形变处理,以保证方正的成像效果,因此,本发明实施例的方案可用于投影仪柱面幕布投影变形算法中。在获取到逆向映射表之后,后续的图像处理均可依照该逆向映射表完成。例如,原始的待投影图像如图2(a)的所示,图2(b)和图2(c)分别为采用正向映射表和采用本发明实施例方案生成的逆向映射表进行映射处理后的输出图像,比较之下,采用本发明实施例方案生成的逆向映射表在图像处理的映射过程中不会产生重叠映射、映射漏洞(例如图2(a)两侧的黑线)等问题,同时也明显地提高了输出图像的清晰度和画面质量。

对应于上文实施例所述的用于图像处理的逆向映射表的获取方法,图3示出了本发明实施例提供的用于图像处理的逆向映射表的获取装置的结构框图,为了便于说明,仅示出了与本实施例相关的部分。

参照图3,该装置包括:

获取单元31,通过遍历输入图像的整数型像素坐标Pi(xint,yint)并查询正向映射表,获取所述输入图像对应的输出图像的浮点型像素坐标P’i(x’float,y’float),其中,0<i<Wsrc*Hsrc,所述Wsrc*Hsrc为所述输入图像的像素分辨率;

确定单元32,遍历所述输出图像的整数型像素坐标Pj(mint,nint),并确定与所述Pj(mint,nint)对应的P’i(x’float,y’float),其中,0<j<Wdst*Hdst,所述Wdst*Hdst为所述输出图像的像素分辨率;

排序单元33,按照所述输出图像的浮点型像素坐标与对应的所述输出图像的整数型像素坐标之间的距离,对所述P’i进行排序,获取所述距离最小的N个所述P’i,所述N为整数;

建立单元34,基于所述距离最小的N个所述P’i对应的所述距离,以及基于所述距离最小的N个所述P’i在所述正向映射表中对应的N个Pi,建立逆向映射表。

可选地,所述装置还包括:

设置所述N的取值。

可选地,所述N大于4且小于32。

可选地,

所述确定单元包括:

取整子单元,用于对所述输出图像的浮点型像素坐标P’i(x’float,y’float)进行取整操作,得到所述输出图像的浮点型像素坐标P’i(x’float,y’float)对应的整数型像素坐标;

确定子单元,用于在所述取整操作得到的整数型像素坐标中,查找与所述输出图像的整数型像素坐标Pj(mint,nint)相同的整数型像素坐标,并将该整数型像素坐标对应的所述输出图像的浮点型像素坐标P’i(x’float,y’float),确定为与所述Pj(mint,nint)对应的P’i(x’float,y’float)。

可选地,所述按照所述输出图像的浮点型像素坐标与对应的所述输出图像的整数型像素坐标之间的距离,对所述P’i进行排序包括:

按照对所述P’i进行排序。

可选地,所述基于所述距离最小的N个所述P’i对应的所述距离,以及基于所述距离最小的N个所述P’i在所述正向映射表中对应的N个Pi,建立逆向映射表包括:

建立所述逆向映射表,在所述逆向映射表中,所述输出图像的整数型像素坐标Pj(mint,nint)对应输入图像的浮点型像素坐标p’j(m’float,n’float),

其中,

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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