CN114648449A - 一种图像重映射方法以及图像处理装置 - Google Patents

一种图像重映射方法以及图像处理装置 Download PDF

Info

Publication number
CN114648449A
CN114648449A CN202011510725.7A CN202011510725A CN114648449A CN 114648449 A CN114648449 A CN 114648449A CN 202011510725 A CN202011510725 A CN 202011510725A CN 114648449 A CN114648449 A CN 114648449A
Authority
CN
China
Prior art keywords
image
pixel
column
pixels
pixel value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011510725.7A
Other languages
English (en)
Inventor
宋碧薇
陈纾悦
卢庆聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011510725.7A priority Critical patent/CN114648449A/zh
Priority to PCT/CN2021/138619 priority patent/WO2022127841A1/zh
Publication of CN114648449A publication Critical patent/CN114648449A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本申请实施例公开了一种图像重映射方法以及图像处理装置,可以在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。具体地,该图像处理装置先对原始图像中的每一行像素进行行变换,再基于行变换结果(即第一图像)对其中的每一列像素进行列变换,得到目标图像。也就是说,该图像处理装置在计算第一图像中的一行像素时,仅需要顺序读取原始图像中的一行像素,而不需要跨行乱序读取;类似的,图像处理装置在计算目标图像的一列像素时,也仅需要顺序读取第一图像中的一列像素,而不需要跨列乱序读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。

Description

一种图像重映射方法以及图像处理装置
技术领域
本申请实施例涉及图像处理技术领域,尤其涉及一种图像重映射方法以及图像处理装置。
背景技术
畸变是成像系统普遍存在的一种像差。对于投影式成像系统,若原始图像在投影过程中产生畸变,将导致呈现在成像平面的图像是相比于原始图像产生了畸变的图像(即畸变图像),而不是前述原始图像。
在传统技术中,常采用预畸变的方式在把原始图像转换为可以抵消畸变的预畸变图像。具体地,处理器在基于原始图像计算预畸变图像中每个像素的像素值时,该处理器需要从原始图像中查找与预畸变图像中A像素对应的A’点,并将该A’点的像素值赋值给预畸变图像中的A像素。但是,由于预畸变图像相比于原始图像在行列两个方向上均有不同程度的畸变,因此该A’点的横纵坐标不一定为整数,因此,该处理器需要采用插值算法根据该A’点附近的多个像素计算出A’点的像素值。以此循环,直到该处理器计算出预畸变图像中的每个像素的像素值。然后,该处理器将该预畸变图像输入至投影式成像系统的显示装置之后,用户便可以通过成像平面观察到由前述预畸变图像经过畸变而获得的原始图像。
由于,传统技术中的显示驱动要求图像按行顺序输入到驱动中,而预畸变图中顺序的每一行像素对应到原始图像的像素一般是乱序的,因此计算预畸变图像的过程中涉及到大量的对原始图像内容的乱序访问,将影响处理器的处理效率。因此,目前急需一种能够提高处理原始图像效率的方案。
发明内容
本申请实施例提供了一种图像重映射方法以及图像处理装置,用于提高基于原始图像生成预畸变图像的效率。
第一方面,本申请提供了一种图像重映射方法,该图像重映射方法可以应用于基于投影式成像系统的成像场景中。在该方法中,图像处理装置先进行行变换处理再进行列变换处理。具体地,该图像处理装置获取原始图像的每一行像素,并且,获取该每一行像素对应的行变换参数。其中,该行变换参数用于指示该原始图像中像素的横坐标与第一图像中像素的横坐标之间的对应关系。然后,该图像处理装置分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数确定该第一图像中每个像素的像素值。此时,该图像处理装置获得了行方向存在预畸变而列方向不存在预畸变的图像(即前述第一图像)。然后,图像处理装置将获取该第一图像的每一列像素,并且,获取该每一列像素对应的列变换参数。其中,该列变换参数用于指示该第一图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系。然后,该图像处理装置分别根据该第一图像中的每一列像素以及该每一列像素对应的列变换参数确定该目标图像中每个像素的像素值。此时,该图像处理装置获得了行方向存在预畸变且列方向存在预畸变的图像(即目标图像),该目标图像用于抵消成像装置的成像畸变以展示该原始图像。
应当理解的是,图像处理装置获取原始图像的每一行像素,可以具体理解为,该图像处理装置读取到每一行像素中每一个像素的像素值和该像素在原始图像中的坐标。其中,该像素在原始图像中的坐标包含横坐标和纵坐标。前述图像处理装置每从原始图像中获取一行像素,相应的,该图像处理装置便获取这一行像素对应的行变换参数。然后,该图像处理装置根据前述一行像素和这一行像素对应的行变换参数便可以计算出第一图像中的一行像素。依次类推,该图像处理装置将依次计算出第一图像中的每一行像素。从原始图像到第一图像的过程可以称为行变换过程。类似的,图像处理装置获取第一图像的每一列像素,可以具体理解为,该图像处理装置读取到每一列像素中每一个像素的像素值和该像素在第一图像中的坐标。其中,该像素在第一图像中的坐标包含横坐标和纵坐标。前述图像处理装置每从第一图像中获取一列像素,相应的,该图像处理装置便获取这一列像素对应的列变换参数。然后,该图像处理装置根据前述一列像素和这一列像素对应的列变换参数便可以计算出目标图像中的一列像素。依次类推,该图像处理装置将依次计算出目标图像中的每一列像素。从第一图像到目标图像的过程可以称为列变换过程。此时,该图像处理装置已经对前述原始图像在行方向和列方向上分别进行了预畸变处理(即前述行变换和列变换),该目标图像是能够抵消投影式成像系统的成像畸变的图像。
本申请中,图像处理装置在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。具体地,该图像处理装置先对原始图像中的每一行像素进行行变换,再基于行变换结果(即第一图像)对其中的每一列像素进行列变换,得到目标图像。也就是说,该图像处理装置在计算第一图像中的一行像素时,仅需要顺序读取原始图像中的一行像素,而不需要跨行乱序读取;类似的,图像处理装置在计算目标图像的一列像素时,也仅需要顺序读取第一图像中的一列像素,而不需要跨列乱序读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。
在一种可选的实施方式中,该行变换参数包括与第一像素对应的第一像素取值点在该原始图像中的横坐标,该第一像素为该第一图像中的任一像素,该第一像素取值点用于确定该第一像素的像素值,该第一像素取值点在该原始图像中的纵坐标与该第一像素在该第一图像中的纵坐标相同。
本实施方式中,提出行变换参数可以用第一像素取值点在原始图像中的横坐标表示,该第一像素取值点是与待求的第一图像中的第一像素对应的点,可以理解为,第一像素取值点在行方向发生畸变之后便落到了前述第一像素对应的位置,因此,在计算第一像素的像素值是需要查找第一像素取值点在原始图像中的位置的像素值。由于,第一像素和第一像素取值点之间仅是行方向存在畸变,因此,第一像素取值点在该原始图像中的纵坐标与该第一像素在该第一图像中的纵坐标相同。因此,前述图像处理装置在计算第一图像中的一行第一像素时,仅需要逐行获取原始图像中的一行像素。
在一种可选的实施方式中,该列变换参数包括与第二像素对应的第二像素取值点在该第一图像中的纵坐标,该第二像素为该述目标图像中的任一像素,该第二像素取值点用于确定该第二像素的像素值,该第二像素取值点在该第一图像中的横坐标与该第二像素在该目标图像中的横坐标相同。
本实施方式中,提出列变换参数可以用第二像素取值点在第一图像中的纵坐标表示,该第二像素取值点是与待求的目标图像中的第二像素对应的点,可以理解为,第二像素取值点在列方向发生畸变之后便落到了前述第二像素对应的位置,因此,在计算第二像素的像素值是需要查找第二像素取值点在第一图像中的位置的像素值。由于,第二像素和第二像素取值点之间仅是列方向存在畸变,因此,第二像素取值点在该第一图像中的横坐标与该第二像素在该目标图像中的横坐标相同。因此,前述图像处理装置在计算目标图像中的一列第二像素时,仅需要逐列获取第一图像中的一列像素。
相比于传统技术,传统技术中的图像处理器在图像处理过程中仅涉及从原始图像到目标图像的映射参数,需要在一次映射处理中对横和列同时进行重映射。因此,在计算目标图像中的一个像素时,就要求图像处理器至少能够从原始图像中读取呈矩形分布的四个像素。又由于在行方向的畸变程度与在列方向的畸变程度是不同的,因此,图像处理器在逐个计算目标图像中的每个像素值时,需要在原始图像中乱序获取像素。而本申请的方案则仅需要从原始图像中逐行获取像素,从第一图像中逐列获取像素。因此,本申请所提出的方案能够提高图像处理装置的图像处理效率。
在一种可选的实施方式中,前述行变换参数存储于行映射关系表中,该行变换参数在该行映射关系表中的位置用于指示第一像素的坐标,其中,该第一像素是与前述行变换参数对应的像素。也可以理解为,该行变换参数在该行映射关系表中的位置用于指示基于该行变换参数确定的第一像素的坐标。
此外,该列变换参数存储于列映射关系表中,该列变换参数在该列映射关系表中的位置用于指示第二像素的坐标,其中,该第二像素是与前述列变换参数对应的像素。也可以理解为,该列变换参数在该列映射关系表中的位置用于表示基于该列变换参数确定的第二像素的坐标。
在一种可选的实施方式中,图像处理装置分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数确定该第一图像中每个像素的像素值,包括:根据该行变换参数确定与该第一像素对应的该第一像素取值点;根据该第一像素取值点的横坐标确定至少一个第三像素,该第三像素与该第一像素取值点位于同一行;根据该至少一个第三像素的像素值确定该第一像素的像素值。图像处理装置该分别根据该第一图像中的每一列像素以及该每一列像素对应的列变换参数确定该目标图像中每个像素的像素值,包括:根据该列变换参数确定与该第二像素对应的该第二像素取值点;根据该第二像素取值点的纵坐标确定至少一个第四像素,该第四像素与该第二像素取值点位于同一列;根据该至少一个第四像素的像素值确定该第二像素的像素值。
在一种可选的实施方式中,该第一像素取值点的横坐标为整数。该根据该第一像素取值点的横坐标确定至少一个第三像素,包括:确定该第一像素取值点为该第三像素。该根据该至少一个第三像素的像素值确定该第一像素的像素值,包括:将该第三像素的像素值赋值于该第一像素,得到该第一像素的像素值。
在一种可选的实施方式中,该第一像素取值点的横坐标为非整数。该根据该第一像素取值点的横坐标确定至少一个第三像素,包括:确定至少一个邻近该第一像素取值点的像素为该第三像素,该邻近该第一像素取值点的像素与该第一像素取值点位于同一行。该根据该至少一个第三像素的像素值确定该第一像素的像素值,包括:采用插值算法根据该第一像素取值点的横坐标以及该至少一个第三像素的横坐标,对该至少一个第三像素的像素值求第一加权平均值;将该第一加权平均值赋值于该第一像素,得到该第一像素的像素值。
其中,前述邻近该第一像素取值点的像素,可以理解为,是第一像素取值点左边一个像素和/或右边一个像素;也可以理解为,是左边第二个像素和/或右边第二个像素;甚至还可以理解为,是左边两个像素和/或右边两个像素。具体此处不做限定。
在一种可选的实施方式中,该第二像素取值点的纵坐标为整数。该根据该第二像素取值点的纵坐标确定至少一个第四像素,包括:确定该第二像素取值点为该第四像素。该根据该至少一个第四像素的像素值确定该第二像素的像素值,包括:将该第四像素的像素值赋值于该第二像素,得到该第二像素的像素值。
在一种可选的实施方式中,该第二像素取值点的纵坐标为非整数。该根据该第二像素取值点的纵坐标确定至少一个第四像素,包括:确定至少一个邻近该第二像素取值点的像素为该第四像素,该邻近该第二像素取值点的像素与该第二像素取值点位于同一列。该根据该至少一个第四像素的像素值确定该第二像素的像素值,包括:采用插值算法根据该第二像素取值点的纵坐标以及该至少一个第四像素的纵坐标,对该至少一个第四像素的像素值求第二加权平均值;将该第二加权平均值赋值于该第二像素,得到该第二像素的像素值。
在一种可选的实施方式中,图像处理装置获取该每一行像素对应的行变换参数,包括:从存储器中按照行方向顺序读取该每一行像素对应的行变换参数,该存储器中存储有行映射关系表,该行映射关系表包括该原始图像中每一行像素对应的该行变换参数。图像处理装置获取该每一列像素对应的列变换参数,包括:从存储器中按照列方向顺序读取该每一列像素对应的列变换参数,该存储器中存储有列映射关系表,该列映射关系表包括该原始图像中每一列像素对应的列变换参数。
本实施方式中,存储器中存储了两张映射关系表,包括从原始图像到第一图像(即仅行变换的图像)的行映射关系表,以及,从第一图像到目标图像的列映射关系表。而传统技术的方案中,使用的是从原始图像到目标图像的映射关系表,因此,传统技术的方案中每计算一个像素的像素值需要参考原始图像中的位于不完全同行且不完全同列的多个像素进行插值。
在一种可选的实施方式中,该分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数进行行变换处理,得到该第一图像之后,该方法还包括:图像处理装置存储该第一图像的每一行的该第一像素至存储器中。该图像处理装置获取该第一图像的每一列像素的过程具体可以为:图像处理装置从该存储器中依次读取该第一图像的每一列像素。传统技术的方案中,图像处理过程不会出现前述第一图像,仅有原始图像和预畸变图像(即目标图像)。
在一种可选的实施方式中,该图像处理装置生成目标图像之后,该图像处理装置可以将该目标图像发送至该成像装置,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。其中,该成像装置可以是投影式成像系统。
第二方面,本申请提供了一种图像处理装置,该图像处理装置可以是投影式成像系统中的图像处理芯片或具有图像处理功能的处理器。该图像处理装置包括:获取模块和计算模块。其中,获取模块,用于获取原始图像的每一行像素,以及获取该每一行像素对应的行变换参数。其中,该行变换参数用于指示该原始图像中像素的横坐标与第一图像中像素的横坐标之间的对应关系,该第一图像为行方向存在预畸变而列方向不存在预畸变的图像。
计算模块,用于分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数确定该第一图像中每个像素的像素值。此外,该获取模块,还用于获取该第一图像的每一列像素,以及获取该每一列像素对应的列变换参数。其中,该列变换参数用于指示该第一图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系,该目标图像为行方向存在预畸变且列方向存在预畸变的图像。此外,该计算模块,还用于分别根据该第一图像中的每一列像素以及该每一列像素对应的列变换参数确定该目标图像中每个像素的像素值,该目标图像用于抵消成像装置的成像畸变以展示该原始图像。
在一种可选的实施方式中,该行变换参数包括与第一像素对应的第一像素取值点在该原始图像中的横坐标,该第一像素为该第一图像中的任一像素,该第一像素取值点用于确定该第一像素的像素值,该第一像素取值点在该原始图像中的纵坐标与该第一像素在该第一图像中的纵坐标相同。该列变换参数包括与第二像素对应的第二像素取值点在该第一图像中的纵坐标,该第二像素为该述目标图像中的任一像素,该第二像素取值点用于确定该第二像素的像素值,该第二像素取值点在该第一图像中的横坐标与该第二像素在该目标图像中的横坐标相同。
在一种可选的实施方式中,该行变换参数存储于行映射关系表中,该行变换参数在该行映射关系表中的位置用于表示基于该行变换参数确定的第一像素的坐标。也可以理解为,该行变换参数在该行映射关系表中的位置用于指示第一像素的坐标,其中,该第一像素是与前述行变换参数对应的像素。该列变换参数存储于列映射关系表中,该列变换参数在该列映射关系表中的位置用于指示第二像素的坐标,其中,该第二像素是与前述列变换参数对应的像素。该列变换参数在该列映射关系表中的位置用于表示基于该列变换参数确定的第二像素的坐标。
在一种可选的实施方式中,该计算模块,具体用于:根据该行变换参数确定与该第一像素对应的该第一像素取值点;根据该第一像素取值点的横坐标确定至少一个第三像素,该第三像素与该第一像素取值点位于同一行;根据该至少一个第三像素的像素值确定该第一像素的像素值;根据该列变换参数确定与该第二像素对应的该第二像素取值点;根据该第二像素取值点的纵坐标确定至少一个第四像素,该第四像素与该第二像素取值点位于同一列;根据该至少一个第四像素的像素值确定该第二像素的像素值。
在一种可选的实施方式中,该图像处理装置还包括存储模块。该存储模块,用于存储该第一图像的每一行的第一像素至存储器中。
在一种可选的实施方式中,该行映射关系表和该列映射关系表存储于存储器中,该行映射关系表包括该原始图像中每一行像素对应的该行变换参数,该列映射关系表包括该原始图像中每一列像素对应的列变换参数。该获取模块,具体用于:从存储器中按照行方向顺序读取该每一行像素对应的行变换参数;从存储器中按照列方向顺序读取该每一列像素对应的列变换参数。
在一种可选的实施方式中,该图像处理装置还包括存储模块。该发送模块,用于将该目标图像发送至该成像装置,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。其中,该成像装置可以是投影式成像系统。
第三方面,本申请提供了一种图像重映射方法,该图像重映射方法可以应用于基于投影式成像系统的成像场景中。在该方法中,图像处理装置先进行行变换处理再进行列变换处理。具体地,该图像处理装置获取原始图像的每一列像素,并且,获取该每一列像素对应的列变换参数。其中,该列变换参数用于指示该原始图像中像素的纵坐标与第二图像中像素的纵坐标之间的对应关系。然后,该图像处理装置分别根据该原始图像中的每一列像素以及该每一列像素对应的列变换参数确定该第二图像中每个像素的像素值。此时,该图像处理装置获得了列方向存在预畸变而行方向不存在预畸变的图像(即前述第二图像)。然后,图像处理装置将获取该第二图像的每一行像素,并且,获取该每一行像素对应的行变换参数。其中,该行变换参数用于指示该第二图像中像素的横坐标与目标图像中像素的横坐标之间的对应关系。然后,该图像处理装置分别根据该第二图像中的每一行像素以及该每一行像素对应的行变换参数确定该目标图像中每个像素的像素值。此时,该图像处理装置获得了行方向存在预畸变且列方向存在预畸变的图像(即目标图像),该目标图像用于抵消成像装置的成像畸变以展示该原始图像。
应当理解的是,图像处理装置获取原始图像的每一列像素,可以具体理解为,该图像处理装置读取到每一列像素中每一个像素的像素值和该像素在原始图像中的坐标。其中,该像素在原始图像中的坐标包含横坐标和纵坐标。前述图像处理装置每从原始图像中获取一列像素,相应的,该图像处理装置便获取这一列像素对应的列变换参数。然后,该图像处理装置根据前述一列像素和这一列像素对应的列变换参数便可以计算出第二图像中的一列像素。依次类推,该图像处理装置将依次计算出第二图像中的每一列像素。从原始图像到第二图像的过程可以称为列变换过程。类似的,图像处理装置获取第二图像的每一行像素,可以具体理解为,该图像处理装置读取到每一行像素中每一个像素的像素值和该像素在第二图像中的坐标。其中,该像素在第二图像中的坐标包含横坐标和纵坐标。前述图像处理装置每从第二图像中获取一行像素,相应的,该图像处理装置便获取这一行像素对应的行变换参数。然后,该图像处理装置根据前述一行像素和这一行像素对应的行变换参数便可以计算出目标图像中的一行像素。依次类推,该图像处理装置将依次计算出目标图像中的每一行像素。从第二图像到目标图像的过程可以称为行变换过程。此时,该图像处理装置已经对前述原始图像在行方向和列方向上分别进行了预畸变处理(即前述行变换和列变换),该目标图像是能够抵消投影式成像系统的成像畸变的图像。
本申请中,图像处理装置在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。具体地,该图像处理装置先对原始图像中的每一列像素进行列变换,再基于列变换结果(即第二图像)对其中的每一行像素进行行变换,得到目标图像。也就是说,该图像处理装置在计算第二图像中的一列像素时,仅需要顺序读取原始图像中的一列像素,而不需要跨列乱序读取;类似的,图像处理装置在计算目标图像的一行像素时,也仅需要顺序读取第二图像中的一行像素,而不需要跨行乱序读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。
在一种可选的实施方式中,该列变换参数包括与第五像素对应的第五像素取值点在该原始图像中的纵坐标,该第五像素为该第二图像中的任一像素,该第五像素取值点用于确定该第五像素的像素值,该第五像素取值点在该原始图像中的横坐标与该第五像素在该第二图像中的横坐标相同。
本实施方式中,提出列变换参数可以用第五像素取值点在原始图像中的纵坐标表示,该第五像素取值点是与待求的第二图像中的第五像素对应的点,可以理解为,第五像素取值点在列方向发生畸变之后便落到了前述第五像素对应的位置,因此,在计算第五像素的像素值是需要查找第五像素取值点在原始图像中的位置的像素值。由于,第五像素和第五像素取值点之间仅是列方向存在畸变,因此,第五像素取值点在该原始图像中的横坐标与该第五像素在该第二图像中的横坐标相同。因此,前述图像处理装置在计算第二图像中的一列第五像素时,仅需要逐列获取原始图像中的一列像素。
在一种可选的实施方式中,该行变换参数包括与第六像素对应的第六像素取值点在该第二图像中的横坐标,该第六像素为该目标图像中的任一像素,该第六像素取值点用于确定该第六像素的像素值,该第六像素取值点在该第二图像中的纵坐标与该第六像素在该目标图像中的纵坐标相同。
本实施方式中,提出行变换参数可以用第六像素取值点在第二图像中的横坐标表示,该第六像素取值点是与待求的目标图像中的第六像素对应的点,可以理解为,第六像素取值点在行方向发生畸变之后便落到了前述第六像素对应的位置,因此,在计算第六像素的像素值是需要查找第六像素取值点在第二图像中的位置的像素值。由于,第六像素和第六像素取值点之间仅是行方向存在畸变,因此,第六像素取值点在该第二图像中的纵坐标与该第六像素在该目标图像中的纵坐标相同。因此,前述图像处理装置在计算目标图像中的一行第六像素时,仅需要逐行获取第二图像中的一行像素。
在一种可选的实施方式中,前述列变换参数存储于列映射关系表中,该列变换参数在该列映射关系表中的位置用于表示基于该列变换参数确定的第五像素的坐标。也可以理解为,该列变换参数在该列映射关系表中的位置用于指示第五像素的坐标,其中,该第五像素是与前述列变换参数对应的像素。此外,该行变换参数存储于行映射关系表中,该行变换参数在该行映射关系表中的位置用于表示基于该行变换参数确定的第六像素的坐标。也可以理解为,该行变换参数在该行映射关系表中的位置用于指示第六像素的坐标,其中,该第六像素是与前述行变换参数对应的像素。
在一种可选的实施方式中,图像处理装置分别根据该原始图像中的每一列像素以及该每一列像素对应的列变换参数确定该第二图像中每个像素的像素值,包括:根据该列变换参数确定与该第五像素对应的该第五像素取值点;根据该第五像素取值点的纵坐标确定至少一个第七像素,该第七像素与该第五像素取值点位于同一列;根据该至少一个第七像素的像素值确定该第五像素的像素值。图像处理装置该分别根据该第二图像中的每一行像素以及该每一行像素对应的行变换参数确定该目标图像中每个像素的像素值,包括:根据该行变换参数确定与该第六像素对应的该第六像素取值点;根据该第六像素取值点的横坐标确定至少一个第八像素,该第八像素与该第六像素取值点位于同一行;根据该至少一个第八像素的像素值确定该第六像素的像素值。
在一种可选的实施方式中,该第五像素取值点的纵坐标为整数。该根据该第五像素取值点的纵坐标确定至少一个第七像素,包括:确定该第五像素取值点为该第七像素。该根据该至少一个第七像素的像素值确定该第五像素的像素值,包括:将该第七像素的像素值赋值于该第五像素,得到该第五像素的像素值。
在一种可选的实施方式中,该第五像素取值点的纵坐标为非整数。该根据该第五像素取值点的纵坐标确定至少一个第七像素,包括:确定至少一个邻近该第五像素取值点的像素为该第七像素,该邻近该第五像素取值点的像素与该第五像素取值点位于同一列。该根据该至少一个第七像素的像素值确定该第五像素的像素值,包括:采用插值算法根据该第五像素取值点的纵坐标以及该至少一个第七像素的纵坐标,对该至少一个第七像素的像素值求第一加权平均值;将该第一加权平均值赋值于该第五像素,得到该第五像素的像素值。
在一种可选的实施方式中,该第六像素取值点的横坐标为整数。该根据该第六像素取值点的横坐标确定至少一个第八像素,包括:确定该第六像素取值点为该第八像素。该根据该至少一个第八像素的像素值确定该第六像素的像素值,包括:将该第八像素的像素值赋值于该第六像素,得到该第六像素的像素值。
在一种可选的实施方式中,该第六像素取值点的横坐标为非整数。该根据该第六像素取值点的横坐标确定至少一个第八像素,包括:确定至少一个邻近该第六像素取值点的像素为该第八像素,该邻近该第六像素取值点的像素与该第六像素取值点位于同一横。该根据该至少一个第八像素的像素值确定该第六像素的像素值,包括:采用插值算法根据该第六像素取值点的横坐标以及该至少一个第八像素的横坐标,对该至少一个第八像素的像素值求第二加权平均值;将该第二加权平均值赋值于该第六像素,得到该第六像素的像素值。
在一种可选的实施方式中,图像处理装置获取该每一列像素对应的列变换参数,包括:从存储器中按照列方向顺序读取该每一列像素对应的列变换参数,该存储器中存储有列映射关系表,该列映射关系表包括该原始图像中每一列像素对应的该列变换参数。图像处理装置获取该每一行像素对应的行变换参数,包括:从存储器中按照行方向顺序读取该每一行像素对应的行变换参数,该存储器中存储有行映射关系表,该行映射关系表包括该原始图像中每一行像素对应的行变换参数。
本实施方式中,存储器中存储了两张映射关系表,包括从原始图像到第二图像(即仅列变换的图像)的列映射关系表,以及,从第二图像到目标图像的行映射关系表。而传统技术的方案中,使用的是从原始图像到目标图像的映射关系表,因此,传统技术的方案中每计算一个像素的像素值需要参考原始图像中的位于不完全同行且不完全同列的多个像素进行插值。
在一种可选的实施方式中,该分别根据该原始图像中的每一列像素以及该每一列像素对应的列变换参数进行列变换处理,得到该第二图像之后,该方法还包括:图像处理装置存储该第二图像的每一列的该第五像素至存储器中。该图像处理装置获取该第二图像的每一行像素的过程具体可以为:图像处理装置从该存储器中依次读取该第二图像的每一行像素。传统技术的方案中,图像处理过程不会出现前述第二图像,仅有原始图像和预畸变图像(即目标图像)。
在一种可选的实施方式中,该图像处理装置生成目标图像之后,该图像处理装置可以将该目标图像发送至该成像装置,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。其中,该成像装置可以是投影式成像系统。
第四方面,本申请提供了一种图像处理装置,该图像处理装置可以是投影式成像系统中的图像处理芯片或具有图像处理功能的处理器。该图像处理装置包括:获取模块和计算模块。其中,获取模块,用于获取原始图像的每一列像素,并且,获取该每一列像素对应的列变换参数。其中,该列变换参数用于指示该原始图像中像素的纵坐标与第二图像中像素的纵坐标之间的对应关系。计算模块,用于分别根据该原始图像中的每一列像素以及该每一列像素对应的列变换参数确定该第二图像中每个像素的像素值。此外,获取模块,还用于获取该第二图像的每一行像素,并且,获取该每一行像素对应的行变换参数。其中,该行变换参数用于指示该第二图像中像素的横坐标与目标图像中像素的横坐标之间的对应关系。计算模块,还用于分别根据该第二图像中的每一行像素以及该每一行像素对应的行变换参数确定该目标图像中每个像素的像素值。此时,该图像处理装置获得了行方向存在预畸变且列方向存在预畸变的图像(即目标图像),该目标图像用于抵消成像装置的成像畸变以展示该原始图像。
在一种可选的实施方式中,该列变换参数包括与第五像素对应的第五像素取值点在该原始图像中的纵坐标,该第五像素取值点用于确定该第二图像中的该第五像素的像素值,该第五像素取值点在该原始图像中的横坐标与该第五像素在该第二图像中的横坐标相同。
在一种可选的实施方式中,该行变换参数包括与第六像素对应的第六像素取值点在该第二图像中的横坐标,该第六像素取值点用于确定该目标图像中的该第六像素的像素值,该第六像素取值点在该第二图像中的纵坐标与该第六像素在该目标图像中的纵坐标相同。
在一种可选的实施方式中,前述列变换参数存储于列映射关系表中,该列变换参数在该列映射关系表中的位置用于表示基于该列变换参数确定的第五像素的坐标。该行变换参数存储于行映射关系表中,该行变换参数在该行映射关系表中的位置用于表示基于该行变换参数确定的第六像素的坐标。
在一种可选的实施方式中,该计算模块,具体用于:根据该列变换参数确定与该第五像素对应的该第五像素取值点;根据该第五像素取值点的纵坐标确定至少一个第七像素,该第七像素与该第五像素取值点位于同一列;根据该至少一个第七像素的像素值确定该第五像素的像素值。该计算模块,具体用于:根据该行变换参数确定与该第六像素对应的该第六像素取值点;根据该第六像素取值点的横坐标确定至少一个第八像素,该第八像素与该第六像素取值点位于同一行;根据该至少一个第八像素的像素值确定该第六像素的像素值。
在一种可选的实施方式中,该第五像素取值点的纵坐标为整数。该计算模块,具体用于:确定该第五像素取值点为该第七像素;将该第七像素的像素值赋值于该第五像素,得到该第五像素的像素值。
在一种可选的实施方式中,该第五像素取值点的纵坐标为非整数。该计算模块,具体用于:确定至少一个邻近该第五像素取值点的像素为该第七像素,该邻近该第五像素取值点的像素与该第五像素取值点位于同一列。该计算模块,具体用于:采用插值算法根据该第五像素取值点的纵坐标以及该至少一个第七像素的纵坐标,对该至少一个第七像素的像素值求第一加权平均值;将该第一加权平均值赋值于该第五像素,得到该第五像素的像素值。
在一种可选的实施方式中,该第六像素取值点的横坐标为整数。该计算模块,具体用于:确定该第六像素取值点为该第八像素;将该第八像素的像素值赋值于该第六像素,得到该第六像素的像素值。
在一种可选的实施方式中,该第六像素取值点的横坐标为非整数。该计算模块,具体用于:确定至少一个邻近该第六像素取值点的像素为该第八像素,该邻近该第六像素取值点的像素与该第六像素取值点位于同一横;采用插值算法根据该第六像素取值点的横坐标以及该至少一个第八像素的横坐标,对该至少一个第八像素的像素值求第二加权平均值;将该第二加权平均值赋值于该第六像素,得到该第六像素的像素值。
在一种可选的实施方式中,该图像处理装置还包括存储模块。该存储模块,用于存储该第二图像的每一列的第五像素至存储器中。
在一种可选的实施方式中,图像处理装置获取该每一列像素对应的列变换参数,包括:从存储器中按照列方向顺序读取该每一列像素对应的列变换参数,该存储器中存储有列映射关系表,该列映射关系表包括该原始图像中每一列像素对应的该列变换参数。该获取模块,具体用于:从存储器中按照行方向顺序读取该每一行像素对应的行变换参数;从存储器中按照列方向顺序读取该每一列像素对应的列变换参数。
在一种可选的实施方式中,该图像处理装置还包括存储模块。该发送模块,用于将该目标图像发送至该成像装置,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。其中,该成像装置可以是投影式成像系统。
第五方面,本申请提供了一种映射关系构建方法,该方法用于计算前述实施方法所介绍的行映射关系表和列映射关系表。该方法可以在前述图像处理装置中执行;也可以由其他的计算设备执行,并在计算出的行映射关系表和列映射关系表存储至前述图像处理装置)(或与图像处理装置连接的外部存储器)中。在该方法中,计算设备获取标定图像中每个标定点的坐标;获取畸变图像中每个畸变点的坐标,该畸变图像为经成像装置的成像畸变而获得的图像,该畸变图像中的畸变点与该标定图像中的标定点一一对应。然后,该计算设备根据该畸变点的坐标和该标定点的坐标,分别确定行映射关系表和列映射关系表。
可选的,该计算设备将前述行映射关系表和前述列映射关系表存储于存储器中。
在一种可选的实施方式中,该计算设备根据该畸变点的坐标和该标定点的坐标,分别确定行映射关系表和列映射关系表,包括:S1、固定纵坐标为畸变点纵坐标,以标定点的横坐标为自变量并以对应畸变点的横坐标为因变量构建行变换模型。S2、根据该行变换模型计算第三图像中每个像素在原始图像上的横坐标,得到该行映射关系表,该第三图像中每个像素的坐标为整数。S3、固定横坐标为标定点横坐标,以标定点的纵坐标为自变量并以对应畸变点的纵坐标为因变量构建列变换模型。S4、根据该列变换模型计算第四图像中每个像素在该第三图像上的纵坐标,得到该列映射关系表,该第四图像中每个像素的坐标均为整数,该第四图像为该标定图像的预畸变图像。
在一种可选的实施方式中,该根据该畸变点的坐标和该标定点的坐标,分别确定行映射关系表和列映射关系表,包括:T1、固定纵坐标为畸变点纵坐标,以标定点的纵坐标为自变量并以对应畸变点的纵坐标为因变量构建列变换模型。T2、根据该列变换模型计算第五图像中每个像素在原始图像上的纵坐标,得到该列映射关系表,该第五图像中每个像素的坐标为整数。T3、固定横坐标为标定点横坐标,以标定点的横坐标为自变量并以对应畸变点的横坐标为因变量构建行变换模型。T4、根据该行变换模型计算第六图像中每个像素在该第五图像上的横坐标,得到行映射关系表,该第六图像中每个像素的坐标均为整数,该第六图像为该标定图像的预畸变图像。
在一种可选的实施方式中,该根据该畸变点的坐标和该标定点的坐标,分别确定行映射关系表和列映射关系表,包括:以该畸变点的横坐标和纵坐标为自变量,且,该标定点的横坐标和纵坐标为因变量,构建畸变模型;根据该畸变模型计算第七图像中每个像素在该标定图像上的横坐标和纵坐标,得到畸变映射关系表,该第七图像中每个像素的横坐标和纵坐标均为整数;将该畸变映射关系表中的坐标沿水平方向拆分,得到该行映射关系表;将该畸变映射关系表中的坐标沿垂直方向拆分,得到该列映射关系表。
第六方面,本申请提供了一种计算设备,该计算设备用于计算前述实施方法所介绍的行映射关系表和列映射关系表。该计算设备包括:获取模块和确定模块。其中,获取模块,用于获取标定图像中每个标定点的坐标,以及获取畸变图像中每个畸变点的坐标。其中,该畸变图像为经成像装置的成像畸变而获得的图像,该畸变图像中的畸变点与该标定图像中的标定点一一对应。确定模块,用于根据该畸变点的坐标和该标定点的坐标,分别确定行映射关系表和列映射关系表。
可选的,该计算设备将前述行映射关系表和前述列映射关系表存储于存储器中。
在一种可选的实施方式中,该确定模块,具体用于:固定纵坐标为畸变点纵坐标,以标定点的横坐标为自变量并以对应畸变点的横坐标为因变量构建行变换模型。根据该行变换模型计算第三图像中每个像素在原始图像上的横坐标,得到该行映射关系表,该第三图像中每个像素的坐标为整数。固定横坐标为标定点横坐标,以标定点的纵坐标为自变量并以对应畸变点的纵坐标为因变量构建列变换模型。根据该列变换模型计算第四图像中每个像素在该第三图像上的纵坐标,得到该列映射关系表,该第四图像中每个像素的坐标均为整数,该第四图像为该标定图像的预畸变图像。
在一种可选的实施方式中,该确定模块,具体用于:固定纵坐标为畸变点纵坐标,以标定点的纵坐标为自变量并以对应畸变点的纵坐标为因变量构建列变换模型。根据该列变换模型计算第五图像中每个像素在原始图像上的纵坐标,得到该列映射关系表,该第五图像中每个像素的坐标为整数。固定横坐标为标定点横坐标,以标定点的横坐标为自变量并以对应畸变点的横坐标为因变量构建行变换模型。根据该行变换模型计算第六图像中每个像素在该第五图像上的横坐标,得到行映射关系表,该第六图像中每个像素的坐标均为整数,该第六图像为该标定图像的预畸变图像。
在一种可选的实施方式中,该确定模块,具体用于:以该畸变点的横坐标和纵坐标为自变量,且,该标定点的横坐标和纵坐标为因变量,构建畸变模型;根据该畸变模型计算第七图像中每个像素在该标定图像上的横坐标和纵坐标,得到畸变映射关系表,该第七图像中每个像素的横坐标和纵坐标均为整数;将该畸变映射关系表中的坐标沿水平方向拆分,得到该行映射关系表;将该畸变映射关系表中的坐标沿垂直方向拆分,得到该列映射关系表。
第七方面,本申请还提供了一种图像处理装置,该图像处理装置包括处理器和内部存储器,该处理器和该内部存储器耦合;该处理器,用于从外部存储器中读取行映射参数表和列映射参数表至该内部存储器中;该内部存储器还存储有程序,当该内部存储器存储的程序指令被该处理器执行时使得该图像处理装置实现如前述第一方面或第三方面任意一种实施方式所介绍的方法。
第八方面,本申请还提供了一种成像装置,包括图像处理装置和显示装置。其中,该图像处理装置用于按照如前述第一方面或第三方面任意一种实施方式所介绍的方法根据原始图像生成目标图像,并将该目标图像传输至该显示装置,以使得该成像装置投射出该原始图像。可选的,该成像装置为投影式成像系统。
第九方面,本申请还提供了一种计算机可读存储介质,包括计算机程序,该计算机序被处理器执行以实现如前述第一方面或第三方面任意一种实施方式所介绍的方法。
第十方面,本申请还提供了一种包含指令的计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行如前述第一方面或第三方面任意一种实施方式所介绍的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,图像处理装置在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。具体地,该图像处理装置先对原始图像中的每一行像素进行行变换,再基于行变换结果(即第一图像)对其中的每一列像素进行列变换,得到目标图像;或,先对原始图像中的每一列像素进行列变换,再基于列变换结果对每一行像素进行行变换,得到该目标图像。也就是说,该图像处理装置在计算第一图像中的一行像素时,仅需要读取原始图像中的一行像素,而不需要跨行读取;类似的,图像处理装置在计算目标图像的一列像素时,也仅需要读取第一图像中的一列像素,而不需要跨列读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1A为投影式成像系统的一个简易结构图;
图1B为本申请中原始图像的一个示例图;
图1C为本申请中畸变图像的一个示例图;
图2为本申请中图像重映射方法的一个流程图;
图3A为本申请中行变换过程的一个示例图;
图3B为本申请中列变换过程的一个示例图;
图3C为本申请中行变换和列变换过程的一个示例图;
图4为本申请中映射关系构建方法的一个流程图;
图5A为本申请中标定图像的示例图;
图5B为本申请中映射关系构建方法一个实施例示意图;
图6A为本申请中图像重映射方法的另一个流程图;
图6B为本申请中行变换和列变换过程的另一个示例图;
图7为本申请中图像处理装置的一个实施例示意图;
图8为本申请中图像处理装置的另一个实施例示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供了一种图像重映射方法以及图像处理装置,用于提高基于原始图像生成预畸变图像的效率。
本申请的图像重映射方法主要应用于抵消基于投影式成像系统的成像装置产生的畸变,下面将结合投影式成像系统的结构对畸变产生的原理以及抵消畸变的原理进行介绍:
如图1A所示,为投影式成像系统10的简易结构示意图。其中,该投影式成像系统10包括光学模组101和显示装置102。其中,显示装置102用于产生需要投影成像的图像。该显示装置102发出的光线经过光学模组101之后到达成像平面11,在该成像平面11呈现现出图像。
在实际应用中,前述显示装置102可能为液晶显示器(liquid crystal display,LCD)、数字光处理(digital light processing,DLP)或者硅基液晶(liquid crystal onsilicon,LCOS)等。前述光学模组101可能包括一个或多个透镜、自由曲面镜等。
但是,由于投影式成像系统10在成像过程中难免会存在像差,因此,呈现在前述成像平面11上的图像不是显示装置102显示的图像(后文称为原始图像),而是该基于前述图像而产生畸变的图像(后文称为畸变图像)。为了抵消前述畸变,需要将原始图像处理成与畸变图像具有相反畸变方向以及相同畸变程度的预畸变图像,然后,在显示装置102上产生前述预畸变图像,以使得显示装置102发出的光线经过光学模组101而到达成像平面11时,成像平面11上呈现出的是由预畸变图像经过畸变而获得的原始图像。由此,可以抵消因光学像差而造成的图像畸变。示例性的,若显示装置102生成的是如图1B所示的正常图像,那么,前述投影式成像系统10投射到成像平面11的图像可能是如图1C所示的任意一种畸变图像。示例性的,若当显示装置102显示的原始图像为图1B所示的正常图像且成像平面11呈现的畸变图像是如图1C中的(a)所示的枕形畸变图像。此时,可以将前述原始图像(即图1B所示的正常图像)处理为如图1C中的(b)所示的桶形畸变图像,并由显示装置102生成前述桶形畸变图像。于是,成像平面11便可以呈现出如图1B所示的正常图像,该正常图像(即原始图像)是由桶形畸变图像(即预畸变图像)经过畸变而获得的。
对此,传统技术常采用二次线性插值的方式,根据原始图像中呈矩形排布的四个像素计算预畸变图像中的一个像素,以此循环求出预畸变图像中的每一个像素的像素值。但是,在此过程中,每计算预畸变图像中的一个像素便需要从原始图像读取不完全同行且不完全同列的至少四个像素。因此,需要执行大量的对原始图像的乱序访问,这将影响处理器的处理效率。
对此,本申请实施例提出的图像重映射方法不仅可以应用于校正基于投影式成像系统的成像装置引起的畸变,还能够建立原始图像和预畸变图像之间分别在行和列两个方向上的映射关系,分两次单方向的映射处理,将前述原始图像处理为经行变换的图像(或经列变换的图像)以及经行变换和列变换之后的图像(或经列变换和行变换之后的图像),得到预畸变图像。由于,不需要跨行或跨列访问数据,因此,能够提高处理器的处理效率。
应当理解的是,本申请实施例中图像重映射方法所能校正的畸变形式,可以是枕形畸变(如图1C中的(a)所示)、桶形畸变(如图1C中的(b)所示)、梯形畸变(如图1C中的(c)所示)、扇形畸变(如图1C中的(d)所示)以及平行四边形畸变(如图1C中的(e)所示)中任意一种形式的畸变,也可以是前述多种畸变形式中任意至少两种畸变形式的组合或叠加,还可以是没有具体形状的畸变等。具体此处不做限定。
应当注意的是,前述基于前述投影式成像系统的成像装置可以是平视显示器(head up display,HUD)(也被称为抬头显示器),也可以是头盔显示器(head mounteddisplay,HMD)(也被称为头戴式显示器)。其中,前述平视显示器HUD可以是航空飞机座舱系统中的显示器,安装于座舱中央仪表板的上方,作为飞行员与飞机之间交换信息的窗口;前述平视显示器HUD也可以应用于车联网(vehicle to everything,V2X)领域,作为车载显示器,为驾驶员提供行车信息。前述头盔显示器HMD常应用于增强现实(augmented reality,AR)技术和虚拟现实(virtual reality,VR)技术中,例如,AR眼镜(也被称为AR显示器)和VR眼镜(也被称为VR显示器)。当成像装置采用前述任意一种实现方式时,接收前述成像装置投射的图像的成像平面为用户的视网膜。此外,该成像装置也可以是普通的投影仪,此时,接收该投影仪投射的图像的成像平面为幕布等图像接收装置。
还应当注意的是,执行前述图像重映射方法的图像处理装置可以包括位于前述平视显示器HUD或头盔显示器HMD中的图像处理芯片,例如,现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)、数字信号处理(digital signal process,DSP)、中央处理器(central processing unit,CPU)或图形处理器(graphics processing unit,GPU)等具有图像处理功能的芯片。
另外,前述显示装置102可以前述图像处理装置集成于一体,例如,显示装置102和图像处理装置均集成于前述平视显示器HUD(或头盔显示器HMD)中,该图像处理装置计算出的每一张预畸变图像可以立即输入前述显示装置102进行显示。前述显示装置102也可以与前述图像处理装置分布式布置,例如,图像处理装置外置于与前述平视显示器HUD(或头盔显示器HMD)连接的计算机中,该计算机能够将计算出的预畸变图像通过有线或无线的方式传输至前述平视显示器HUD(或头盔显示器HMD)中的显示装置102进行显示。
下面将基于前述场景对本申请提出的图像重映射方法进行介绍,在该方法中,如图2所示,若图像处理装置先对原始图像进行行变换,再对经行变换处理后的图像进行列变换,则该原始图像将执行如下步骤:
步骤201、获取原始图像的每一行像素。
其中,该原始图像为希望呈现在成像平面上的不存在畸变的图像。本申请提出的方案需要对该原始图像进行预畸变处理,以获得目标图像(即预畸变图像)。通过将前述目标图像输入至投影式成像系统进行投影,以使得在成像平面上呈现出前述原始图像。
本实施例中,该图像处理装置可以通过数据传输接口或其他通信接口从外部存储器读取前述原始图像,或从其他外部设备接收前述原始图像。该图像处理装置可以将前述获取到的原始图像暂存至图像处理装置的内部存储器中,每计算一行像素便从该内部存储器中读取一行像素。具体此处不做限定。但是,无论采用前述任何一种方式获取原始图像,该图像处理装置会依次读取该原始图像的每一行像素,并且,在后续处理过程中也会依次地对每一行像素进行处理。
在一种可选的实施方式中,若图像处理装置从存储器(例如,双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,DDR SDRAM)(简称DDR))获取原始图像中每一行像素,那么,该过程具体可以为图像处理装置从存储原始图像的起始地址按照行方向顺序读取每一行像素。具体地,依据存储器的位宽每次读取像素的个数不同,图像处理装置读取完一行像素所需执行的读操作的次数不同。例如,若位宽为256bit,一个三通道的像素为8×3=24bit,那么一次可以读10个像素。若该原始图像为100×100的图像,那么,该图像处理装置仅需要10次读取操作便可以读取到该原始图像的一整行像素。
应当理解的是,图像处理装置获取原始图像的每一行像素,可以具体理解为,该图像处理装置读取到每一行像素中每一个像素的像素值和该像素在原始图像中的坐标。其中,该像素在原始图像中的坐标包含横坐标和纵坐标。
此外,若图像处理装置从存储器中获取原始图像的每一行像素,则图像处理装置获取原始图像中的每一行像素的过程具体可以为:图像处理装置从存储器中按行读取原始图像中的每一行像素,即读取某一行中连续的横坐标的像素。可选的,该图像处理装置可以按照行的序数顺序读取,例如,读完第一行的像素之后,再读取第二行的像素,然后再读第三行的像素;也可以按行的序数逆序读取,例如,读完第二行的像素之后,再读取第一行的像素。此外,图像处理装置可以从某一行的第一个像素开始读取,也可以从某一行的第N个像素开始读取。具体此处不做限定。
步骤202、获取该每一行像素对应的行变换参数。
本实施例中,步骤201和步骤202之间无时间先后顺序的限定。也就是说,图像处理装置可以先执行步骤201再执行步骤202,也可以先执行步骤202再执行步骤201,还可以同时执行前述步骤201和步骤202,具体此处不做限定。在后续实施例中,仅以图像处理装置可以先从原始图像中获取一行像素,再从获取该行像素对应的行变换参数为例进行介绍。
该行变换参数为用于对原始图像中的某一行像素进行行变换处理的参数。该行变换处理指像素在行方向上移动位置,也可以理解为,像素的横坐标发生了改变而纵坐标没有发生改变。为便于介绍,将由原始图像仅经过行变换处理而获得的图像称为第一图像。那么,该行变换参数用于指示该原始图像中像素的横坐标与第一图像中像素的横坐标之间的对应关系。还应当理解的是,像素的位置改变(即像素的移动)实质上是像素值的迁移。因此,行变换参数可以用于确定第一图像中的某个像素的像素值的取值来自于原始图像中的哪个像素。为便于介绍,称第一图像中任意一个像素为第一像素,该第一像素对应于在原始图像中的点为第一像素取值点。于是,该行变换参数包括与第一像素对应的第一像素取值点在该原始图像中的横坐标,该第一像素取值点用于确定第一图像中的第一像素的像素值,该第一像素取值点在该原始图像中的纵坐标与该第一像素在该第一图像中的纵坐标相同。
可选的,该行变换参数可以以行映射关系表的形式存储于存储器中,该行映射关系表包括多个行变换参数。
在一种可选的实施方式中,该行映射关系表中行变换参数的个数与前述第一图像中像素的个数相等,并且,行映射关系表中的各个行变换参数与第一图像中各个像素之间按照坐标一一对应。该行变换参数在该行映射关系表中的位置用于表示基于该行变换参数确定的第一图像中的第一像素的坐标。示例性的,若第一图像为1080×1080的图像,则该原始图像对应的行映射表也为1080×1080。若行变换参数a1位于行映射关系表中的第二行第三列,那么,该行变换参数a1用于确定第一图像中的坐标为(3,2)的像素的像素值。
在另一种可选的实施方式中,可以将行映射关系表压缩存储于存储器中,即该存储器中存储的是压缩的行映射关系表。压缩的行映射关系表中行变换参数的个数小于前述第一图像中像素的个数。此时,前述图像处理装置获取该每一行像素对应的行变换参数,可以理解为是,读取压缩的行映射关系表并将压缩的该行映射关系表恢复为完整的行映射关系表,然后,再从前述完整的行映射关系表中读取与第一图像对应的一行行变换参数;也可以理解为,读取压缩的行映射关系表中的若干个行变换参数,然后,将从压缩的该行映射关系表中读取的若干个行变换参数恢复为一行行变换参数。前述恢复过程可以采用插值算法,具体此处不做限定。
应当注意的是,前述像素值是图像被数字化时由计算机赋予的值,代表了图像中某一像素的平均亮度信息。前述原始图像可以为单通道图像、三通道图像或四通道图像。其中,单通道图像也被称为灰度图像,每个像素由一个像素值表示。若单通道图像的像素值采用8位表示,则该单通道图像的像素值的取值范围为:0(黑)~255(白)。其中,三通道图像一般指的是RGB图像,该RGB图像可以呈现出色彩,也可以表示黑白图像。若三通道图像的像素值采用8位表示,则每个像素值由三个通道值表示,即像素值由红(0~255)、绿(0~255)和蓝(0~255)叠加表示。四通道图像则是在三通道图像的基础上增加了一个亮度通道以表示透明程度。若原始图像为单通道图像,该图像处理装置计算出的第一图像和目标图像也为单通道图像;若原始图像为三通道图像,该图像处理装置计算出的第一图像和目标图像也为三通道图像;具体此处不做限定。若该原始图像为三通道图像,则一个像素的像素值是由三个通道值组成的,在计算过程中需要对每个通道值进行相同的计算。
本实施例中,图像处理装置获取每一行像素对应的行变换参数的过程,具体可以为,图像处理装置从存储器中按行读取每一行像素对应的行变换参数,即读取某一行中连续的横坐标的行变换参数。可选的,该图像处理装置可以按照行的序数顺序读取,例如,读完第一行的行变换参数之后,再读取第二行的行变换参数,然后再读第三行的行变换参数;也可以按行的序数逆序读取,例如,读完第二行的行变换参数之后,再读取第一行的行变换参数。此外,图像处理装置可以从某一行的第一个行变换参数开始读取,也可以从某一行的第N个行变换参数开始读取。具体此处不做限定。
本实施例中,图像处理装置可以采用读取原始图像的方式读取该行映射关系表。也就是说,图像处理装置读取原始图像中的像素的顺序与图像处理装置读取行映射关系表中的行变换参数的顺序是一致的。示例性的,若图像处理装置从原始图像中第N行M列开始读取像素,则该图像处理装置也应当从行变换参数表中的第N行第M列开始读取行变换参数。
步骤203、分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数确定第一图像中每个像素的像素值。
其中,该第一图像为行方向存在预畸变而列方向不存在预畸变的图像,也就是说,该第一图像为待求的由原始图像经过行变换处理的结果。
本实施例中,图像处理装置计算该第一图像的过程,可以理解为,该图像处理装置确定第一图像中每个像素的像素值的过程。由于,该第一图像中每个像素的位置(即坐标)是已知的,即第一图像中的各个像素的横坐标和纵坐标均为连续的整数。因此,根据该第一像素的横坐标和纵坐标即可查询到该第一图像的行变换参数,即根据第一像素的横坐标和纵坐标查询具有相同横坐标和纵坐标的行变换参数。
为便于理解,以图3A为例进行介绍。其中,原始图像31为4×4的图像(即四行四列的图像),与该原始图像31对应的行映射关系表也为四行四列。在原始图像31中,每个像素都有着确定的像素值,采用s(i,j)表示,其中,i代表横坐标,j代表纵坐标。例如,s(1,1)代表横坐标为1纵坐标为1的像素的像素值。在第一图像33中,每个像素的像素值需要图像处理装置根据原始图像31和行映射关系表32计算获得。以第一图像33的第一行第一列的像素331为例,该像素331的横坐标为1,纵坐标为1,即该像素331位于第一图像中的第一行第一列。那么,与该像素331对应的行变换参数为行映射关系表32中的第一行第一列对应的行变换参数321。
然后,该图像处理装置将根据该行变换参数确定与该第一像素对应的第一像素取值点,并根据该第一像素取值点的横坐标确定至少一个第三像素。然后,该图像处理装置根据该至少一个第三像素的像素值确定该第一像素的像素值。其中,该第三像素与该第一像素取值点位于同一行。
其中,该第一像素取值点的横坐标可能为整数,也可能为非整数。
在一种可选的实施方式中,若该第一像素取值点的横坐标为整数,那么,该图像处理装置可以直接确定该第一像素取值点为该第三像素,然后,将该第三像素的像素值赋值于该第一像素,得到该第一像素的像素值。
依然以前述图3A为例,若第一像素为像素332,那么,与该第一像素对应的行变换参数为行变换参数322。此时,该行变换参数322的取值为4,该行变换参数332位于行映射关系表32的第二行,则该像素332的像素值由原始图像中第二行第四个像素的像素值(即横坐标为4纵坐标为2的像素值)确定。在这个示例中,4为第一像素取值点的横坐标,该第一像素取值点为原始图像中第二行第四个像素(即横坐标为4纵坐标为2的像素);该第三像素直接由第一像素取值点确定,即该第三像素为该第一像素取值点。
在另一种可选的实施方式中,若该第一像素取值点的横坐标为非整数,那么,该图像处理装置需要在该非整数附近的确定一个或多个第三像素。具体地,该图像处理装置确定至少一个邻近该第一像素取值点的像素为该第三像素,该邻近该第一像素取值点的像素与该第一像素取值点位于同一行。然后,该图像处理装置采用插值算法根据该第一像素取值点的横坐标以及该至少一个第三像素的横坐标,对该至少一个第三像素的像素值求第一加权平均值,将该第一加权平均值赋值于该第一像素,得到该第一像素的像素值。
依然以前述图3A为例,若第一像素为像素331,那么,与该第一像素对应的行变换参数为行变换参数321。此时,该行变换参数321的取值为1.6,该行变换参数331位于行映射关系表32的第一行。因此,该第一像素取值点为原始图像中坐标为(1.6,1)的点。此时,该图像处理装置需要确定邻近该第一像素取值点,且,与该第一像素取值点位于同一行的像素为第三像素。由原始图像31可知,点(1.6,1)位于像素311(横坐标为1纵坐标为1)与像素312(横坐标为2纵坐标为1)之间,则该图像处理装置可以确定像素311和像素312为第三像素。若像素311的像素值为100,像素312的像素值为120,采用插值算法,可以确定加权平均值=112。在这个示例中,1.6为第一像素取值点的横坐标,该第一像素取值点为点(1.6,1),第三像素为像素311和像素312。
在实际应用中,该图像处理装置可以确定第一像素取值点左边两个像素以及第一像素取值点右边两个像素为第三像素值,具体此处不做限定。另外,前述示例中列举的是常见的一维线性插值,在实际应用中,该图像处理装置还可以采用行方向上的双线性插值、多次非线性插值等插值方法,具体此处不做限定。
以此类推,该图像处理装置计算完第一图像中的每个像素之后,便可以获得前述第一图像。
本实施例中,该图像处理装置在计算第一图像中的某一个像素的像素值时仅需要原始图像中的与该像素位于同一行的一个或多个第三像素,而不需要位于其他行的像素。而传统技术中,若需要计算第一图像中的一个像素的像素值,需要用到原始图像中的位于两行的至少四个像素。因此,本申请的方案,有利于提高图像处理装置计算预畸变图像的效率。此外,由于,图像处理装置在计算时仅需要一行像素而不需要两行像素,因此,图像处理装置在读取存储器中的像素或行变换参数时,也不需要读取两行像素或两行行变换参数,避免了对存储器的乱序访问,减少了激活存储器的次数,解决了复杂重映射中的随机读写问题,降低了硬件实现难度。在并行计算目标图像时,并行的多个目标像素所需的原始图像素也是连续的,不要读取冗余的原始图像,降低了实现高并行计算的所需的内部存储器大小。
本实施例中,图像处理装置在执行了步骤203之后,执行步骤204之前,该图像处理装置还可以将前述第一图像存储于存储器中。应当理解的是,该图像处理装置可以每计算出第一图像的一行像素的像素值便将该行像素的像素值写入存储器中。该图像处理装置也可以将计算出的一行像素存入缓存中,待计算出多行像素之后,该图像处理装置将前述多行像素依次写入存储器中。具体此处不不做限定。
此外,该图像处理装置可以直接将每行像素的像素值按行写入存储器中,也可以将每行像素的像素值进行转置处理,将每行像素按列写入存储器中。具体此处不做限定。
步骤204、获取该第一图像的每一列像素。
其中,第一图像为由原始图像仅经过行变换处理而获得的图像。具体请参阅前述步骤202中的相关介绍,此处不再赘述。
具体地,该图像处理装置从存储器中依次读取前述第一图像的每一列像素。若该图像处理装置每行像素的像素值按行写入存储器中,则该图像处理装置将按列读取该存储器中的第一图像的每一列像素。若该图像处理装置将每行像素的像素值进行转置处理,并将每行像素按列写入存储器中,则该图像处理装置将按行读取该存储器中的第一图像的每一列像素。
步骤205、获取该每一列像素对应的列变换参数。
本实施例中,步骤204和步骤205之间无时间先后顺序的限定。也就是说,图像处理装置可以先执行步骤204再执行步骤205,也可以先执行步骤205再执行步骤204,还可以同时执行前述步骤204和步骤205,具体此处不做限定。在后续实施例中,仅以图像处理装置可以先从第一图像中获取一列像素,再从获取该列像素对应的列变换参数为例进行介绍。
该列变换参数为用于对第一图像中的某一列像素进行列变换处理的参数。该列变换处理指像素在列方向上移动位置,也可以理解为,像素的纵坐标发生了改变而横坐标没有发生改变。由第一图像仅经过列变换处理而获得的图像称为目标图像,即基于原始图像的预畸变图像。将该目标图像输入至投影式成像系统中,成像平面上将展示出由预畸变图像经过畸变而获得的原始图像。该列变换参数用于指示该第一图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系。还应当理解的是,像素的位置改变(即像素的移动)实质上是像素值的迁移。因此,列变换参数可以用于确定目标图像中的某个像素的像素值的取值来自于第一图像中的哪个像素。为便于介绍,称目标图像中任意一个像素为第二像素,该第二像素对应于在第一图像中的点为第二像素取值点。于是,该列变换参数包括与第二像素对应的第二像素取值点在该第一图像中的纵坐标,该第二像素取值点用于确定目标图像中的第二像素的像素值,该第二像素取值点在该第一图像中的横坐标与该第二像素在该目标图像中的横坐标相同。
可选的,该列变换参数可以以列映射关系表的形式存储于存储器中,该列映射关系表包括多个列变换参数。
在一种可选的实施方式中,该列映射关系表中列变换参数的个数与目标图像中像素的个数相等,并且,列映射关系表中的各个列变换参数与目标图像中各个像素之间按照坐标一一对应。该列变换参数在该列映射关系表中的位置用于表示基于该列变换参数确定的目标图像中的第二像素的坐标。示例性的,若目标图像为1080×1080的图像,则该目标图像对应的列映射表也为1080×1080。若列变换参数b1位于列映射关系表中的第二行第三列,那么,该列变换参数b1用于确定目标图像中的坐标为(3,2)的像素的像素值。
在另一种可选的实施方式中,可以将列映射关系表压缩存储于存储器中,即该存储器中存储的是压缩的列映射关系表。压缩的列映射关系表中列变换参数的个数小于前述目标图像中像素的个数。此时,前述图像处理装置获取该每一列像素对应的列变换参数,可以理解为是,读取压缩的列映射关系表并将压缩的该列映射关系表恢复为完整的列映射关系表,然后,再从前述完整的列映射关系表中读取与目标图像对应的一列列变换参数;也可以理解为,读取压缩的列映射关系表中的若干个列变换参数,然后,将从压缩的该列映射关系表中读取的若干个列变换参数恢复为一列列变换参数。前述恢复过程可以采用插值算法,具体此处不做限定。
本实施例中,图像处理装置获取每一列像素对应的列变换参数的过程,具体可以为,图像处理装置从存储器中按列读取每一列像素对应的列变换参数,即读取某一列中连续的纵坐标的列变换参数。可选的,该图像处理装置可以按照列的序数顺序读取,例如,读完第一列的行变换参数之后,再读取第二列的列变换参数,然后再读第三列的列变换参数;也可以按列的序数逆序读取,例如,读完第二列的列变换参数之后,再读取第一列的列变换参数。此外,图像处理装置可以从某一列的第一个列变换参数开始读取,也可以从某一列的第N个列变换参数开始读取。具体此处不做限定。
本实施例中,图像处理装置可以采用读取第一图像的方式读取该列映射关系表。也就是说,图像处理装置读取第一图像中的第一像素的顺序与图像处理装置读取列映射关系表中的列变换参数的顺序是一致的。示例性的,若图像处理装置从第一图像中第N行M列开始读取第一像素,则该图像处理装置也应当从列变换参数表中的第N行第M列开始读取列变换参数。
步骤206、分别根据该第一图像中的每一列像素以及该每一列像素对应的列变换参数确定目标图像中每个像素的像素值。
其中,该目标图像为用于抵消成像装置成像畸变的预畸变图像。将该目标图像输入至投影式成像系统中,成像平面上将展示出由预畸变图像经过畸变而获得的原始图像。
本实施例中,图像处理装置计算该目标图像的过程,可以理解为,该图像处理装置确定目标图像中每个像素的像素值的过程。由于,该目标图像中每个像素的位置(即坐标)是已知的,即目标图像中的各个像素的横坐标和纵坐标均为连续的整数。因此,根据该第二像素的横坐标和纵坐标即可查询到该目标图像的列变换参数,即根据第二像素的横坐标和纵坐标查询具有相同横坐标和纵坐标的列变换参数。
为便于理解,以图3B为例进行介绍。其中,第一图像33为4×4的图像,与该第一图像33对应的列映射关系表也为四行四列。在第一图像33中,每个像素的像素值已由图像处理装置计算出。而目标图像35中的各个像素的像素值需要图像处理装置根据第一图像33和列映射关系表34计算获得以目标图像35的第一行第一个的像素351为例,该像素351的横坐标为1纵坐标为1,即该像素351位于目标图像中的第一行第一列。那么,与该像素351对应的列变换参数为列映射关系表34中的第一行第一列对应的列变换参数341。
然后,该图像处理装置将根据该列变换参数确定与该目标像素对应的第二像素取值点,并根据该第二像素取值点的纵坐标确定至少一个第四像素。然后,该图像处理装置根据该至少一个第四像素的像素值确定该目标像素的像素值。其中,该第四像素与该第二像素取值点位于同一行。
其中,该第二像素取值点的横坐标可能为整数,也可能为非整数。
在一种可选的实施方式中,若该第二像素取值点的横坐标为整数,那么,该图像处理装置可以直接确定该第二像素取值点为该第四像素,然后,将该第四像素的像素值赋值于该第二像素,得到该第二像素的像素值。
依然以前述图3B为例,若第二像素为像素352,那么,与该第二像素对应的列变换参数为列变换参数342。此时,该列变换参数342的取值为3,该列变换参数342位于列映射关系表34的第四列,则该像素342的像素值由第一图像33中第四列第三个像素的像素值(即横坐标为4纵坐标为3的像素值)确定。在这个示例中,3为第二像素取值点的纵横坐标,该第二像素取值点为第一图像33中第四列第三个像素(即横坐标为4纵坐标为3的像素);该第四像素直接由第二像素取值点确定,即该第四像素为该第二像素取值点。
在另一种可选的实施方式中,若该第二像素取值点的横坐标为非整数,那么,该图像处理装置需要在该非整数附近的确定一个或多个第四像素。具体地,该图像处理装置确定至少一个邻近该第二像素取值点的像素为该第四像素,该邻近该第二像素取值点的像素与该第二像素取值点位于同一行。然后,该图像处理装置采用插值算法根据该第二像素取值点的横坐标以及该至少一个第四像素的横坐标,对该至少一个第四像素的像素值求第二加权平均值,将该第二加权平均值赋值于该第二像素,得到该第二像素的像素值。
依然以前述图3B为例,若第二像素为像素351,那么,与该第二像素对应的列变换参数为列变换参数341。此时,该列变换参数341的取值为1.5,该列变换参数341位于列映射关系表34的第一列。因此,该第二像素取值点为第一图像33中坐标为(1,1.5)的点。此时,该图像处理装置需要确定邻近该第二像素取值点,且,与该第二像素取值点位于同一列的像素为第四像素。由第一图像33可知,点(1,1.5)位于像素331(横坐标为1纵坐标为1)与像素334(横坐标为1纵坐标为2)之间,则该图像处理装置可以确定像素331和像素334为第四像素。若像素331的像素值为110,像素334的像素值为120,采用插值算法,可以确定加权平均值=115。在这个示例中,1.5为第二像素取值点的纵坐标,该第二像素取值点为点(1,1.5),第四像素为像素331和像素334。
在实际应用中,该图像处理装置可以确定第二像素取值点上边两个像素以及第二像素取值点下边两个像素为第四像素值,具体此处不做限定。另外,前述示例中列举的是常见的一维线性插值,在实际应用中,该图像处理装置还可以采用行方向上的双线性插值、多次非线性插值等插值方法,具体此处不做限定。
以此类推,该图像处理装置计算完目标图像中的每个像素。
步骤207、将前述目标图像发送至成像装置。
其中,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。
本实施例中,步骤207为可选的步骤。
本实施例中,图像处理装置在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。如图3C所示,该图像处理装置先对原始图像中的每一行像素进行行变换(即图3C中步骤①),再基于行变换结果(即第一图像)对其中的每一列像素进行列变换(即图3C中步骤②),得到目标图像。也就是说,该图像处理装置在计算第一图像中的一行像素时,仅需要读取原始图像中的一行像素,而不需要跨行读取;类似的,图像处理装置在计算目标图像的一列像素时,也仅需要读取第一图像中的一列像素,而不需要跨列读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。
在采用本申请实施提出的图像重映射方法之前,需要先确定行映射关系表和列映射关系表。如图4所示,计算设备可以采用如下方式确定行映射关系表和列映射关系表:
步骤401a、获取标定图像中每个标定点的坐标。
其中,标定图像为用于测量成像装置(例如,前述平视显示器HUD、头盔显示器HMD以及投影仪等)成像畸变的图像,该标定图像中包含多个具有确定坐标的标定点。一般地,该标定图像中的多个标定点按照一定的几何形状排布于标定图像中。
示例性的,标定图像可以如图5A左侧所示的仅有标定点的图像,也可以是如图5A右侧所示的包含标准网格的图像,具体本申请不做限定。若该标定图像为包含标准网格的图像,则网格的顶角(即相邻网格之间的交叉点)便为标定点。
步骤401b、获取畸变图像中每个畸变点的坐标。
其中,该畸变图像为经成像装置的成像畸变而获得的图像,该畸变图像中的畸变点与该标定图像中的标定点一一对应。也就是说,标定图像中的某个标定点经过畸变之后成为了畸变图像中的某个畸变点。示例性的,如图5B所示,若标定图像为501,当该成像装置引起的畸变为扇形畸变时,该标定图像501对应的畸变图像可以如畸变图像502所示。该标定图像501中的标定点与畸变图像502中的畸变点一一对应。例如,坐标为(x,y)的a1点经过畸变之后,坐标变为(u,v)(即a2点)。计算预畸变模型即需要计算501到503的映射,但事实上只有501和502是可观测到的,503是未知的。由于502与501之间的映射和501与503之间的映射其实是等价映射,因此实际计算的时候,只需要需要计算502到501的映射(即畸变图像到标定图像的映射),就可以得到501到503的映射,也就是参数表(例如,行映射关系表或列映射关系表)所需要的预畸变映射。
步骤402、根据该畸变点的坐标和该标定点的坐标,分别确定行映射关系表和列映射关系表。
若图像处理装置采用先行后列的方式确定目标图像时,计算设备确定行映射关系表和列映射关系表的步骤如下所示:
S1、固定纵坐标为畸变点纵坐标,以标定点的横坐标为自变量并以对应畸变点的横坐标为因变量构建行变换模型。
S2、根据该行变换模型计算第三图像中每个像素在原始图像上的横坐标,得到该行映射关系表,该第三图像中每个像素的坐标为整数。
S3、固定横坐标为标定点横坐标,以标定点的纵坐标为自变量并以对应畸变点的纵坐标为因变量构建列变换模型。
S4、根据该列变换模型计算第四图像中每个像素在该第三图像上的纵坐标,得到该列映射关系表,该第四图像中每个像素的坐标均为整数,该第四图像为该标定图像的预畸变图像。
示例性的,采用(xi,yi)表示标定点在原始图像上的坐标,采用(ui,vi)表示畸变点在畸变图像上的坐标。计算设备先计算仅对标定点进行行变换的畸变模型,即根据(xi,vi)到(ui,vi)的映射计算行变换下的模型Fα1(xi,yi)。可选的,该计算设备对(xi,vi)内的区域进行重采样,在行变换图像有效范围内得到一组均匀的标定点(xi,y'i),并根据前述模型Fα1(x,y)计算标定点(xi,y'i)在原始图像中对应的坐标(u'i,y'i)=(Fα1(xi,y'i),y'i)。然后,计算设备根据(xi,y'i)到(u'i,y'i)的映射计算行变换下的模型Fα2(x,y)。然后,计算设备计算仅对标定点进行列变换的畸变模型,即根据(xi,yi)到(xi,vi)的映射计算列变换下的模型Fβ1(x,y)。然后,计算设备利用畸变模型计算目标图上每个点的在原图上的坐标,得到行映射关系表和列映射关系表:
MX(i,j)=Fα2(i,j),MY(i,j)=Fβ1(i,j),0≤i<width,0≤i<height;
其中,i表示目标图像中像素的横坐标;j表示目标图像中像素的纵坐标;width代表目标图像的宽度,可以理解为是目标图像中像素的横坐标的最大值;height代表目标图像高度,可以理解为是目标图像中像素的纵坐标的最大值。
在另一种可选的实施方式中,计算设备也可以通过对从原始图像到目标图像的映射关系表进行列变换,以使得能够近似获得前述行映射关系表和列映射关系表。具体地,可以采用如下公式进行拆分:
MX(i,j)=M(i,jj,0),MY(i,j)=M(i,j,1),0≤i<width,0≤i<height;
其中,M(i,j,0)表示目标图像第i列第j行对应的原始图像中像素的横坐标;M(i,j,1)表示目标图像第i列第j行对应的原始图像中像素的纵坐标;jj=argmin|M(i,k,1)-j|,其中,jj表示使得M(i,k,1)最接近j的k的取值,即分解后的行变换参数表的第i列第j行的参数(仅包括行变换参数)是原始参数表中第i列的参数对(既包括行变换参数也包括列变换参数)中的列变换参数与j最相近的参数对的行变换参数,即固定纵坐标并取横坐标。
应当注意的是,在一些实现图像重映射的方法中,会对映射关系表进行压缩,即并不储存完整的点到点的映射关系,在这种情况下依然可以通过本申请的方案得到分解的压缩的行映射关系表和列映射关系表。
相比于传统技术直接计算(xi,yi)到(ui,vi)的畸变映射,本申请是先计算(xi,vi)到(ui,vi)的映射,再计算(xi,yi)到(xi,vi)的映射,因此,本申请可以获得行映射关系表和列映射关系表。
若图像处理装置采用先列后行的方式确定目标图像时,确定行映射关系表和列映射关系表的步骤如下所示:
T1、固定纵坐标为畸变点纵坐标,以标定点的纵坐标为自变量并以对应畸变点的纵坐标为因变量构建列变换模型。
T2、根据该列变换模型计算第五图像中每个像素在原始图像上的纵坐标,得到该列映射关系表,该第五图像中每个像素的坐标为整数。
T3、固定横坐标为标定点横坐标,以标定点的横坐标为自变量并以对应畸变点的横坐标为因变量构建行变换模型。
T4、根据该行变换模型计算第六图像中每个像素在该第五图像上的横坐标,得到行映射关系表,该第六图像中每个像素的坐标均为整数,该第六图像为该标定图像的预畸变图像。
示例性的,采用(xi,yi)表示标定点在原始图像上的坐标,采用(ui,vi)表示畸变点在畸变图像上的坐标。计算设备先计算仅对标定点进行列变换的畸变模型,即根据(ui,yi)到(ui,vi)的映射计算列变换下的模型Fβ2(x,y)。可选的,该计算设备对(ui,yi)内的区域进行重采样,在列变换图像有效范围内得到一组均匀的标定点(x'i,yi),并根据前述模型Fβ2(x,y)计算标定点(x'i,yi)在原始图像中对应的坐标(x'i,v'i)=(x'i,Fβ2(x'i,y'i))。然后,计算设备根据(x'i,yi)到(x'i,v'i)的映射计算列变换下的模型Fβ3(x,y)。然后,计算设备计算仅对标定点进行行变换的畸变模型,即根据(xi,yi)到(ui,yi)的映射计算行变换下的模型Fα3(x,y)。然后,计算设备利用畸变模型计算目标图上每个点的在原图上的坐标,得到行映射关系表和列映射关系表:
MY(i,j)=Fβ3(i,j),MX(i,j)=Fα3(i,j),0≤i<width,0≤i<height;
其中,i表示目标图像中像素的横坐标;j表示目标图像中像素的纵坐标;width代表目标图像的宽度,可以理解为是目标图像中像素的横坐标的最大值;height代表目标图像高度,可以理解为是目标图像中像素的纵坐标的最大值。
在另一种可选的实施方式中,计算设备也可以通过对从原始图像到目标图像的映射关系表进行变换,以使得能够近似获得前述行映射关系表和列映射关系表。具体地,可以采用如下公式进行拆分:MX(i,j)=M(ii,j,0),MY(i,j)=M(i,j,1),0≤i<width,0≤i<height;
其中,ii=argmin|M(k,j,1)-i|,其中,ii表示使得M(k,j,1)最接近i的k的取值,即分解后的列变换参数表的第i列第j行的参数(仅包括列变换参数)是原始参数表中第j行的参数对(既包括行变换参数也包括列变换参数)中的行变换参数与i最相近的那个参数对的列坐标参数,即固定横坐标并取纵坐标。
步骤403、将该行映射关系表和该列映射关系表存储于存储器中。
本实施例中,待计算设备计算出前述行映射关系表和列映射关系表之后,该计算设备将前述行映射关系表和列映射关系表存储于存储器中。该存储器可以是投影式成像系统中的存储器。该存储器相对于前述图像处理装置是外部存储器,前述图像处理装置中的内部存储器可以从存储有行映射关系表和列映射关系表的内部存储器中获取前述行映射关系表和列映射关系表。
下面将基于前述场景对本申请提出的图像重映射方法进行介绍,在该方法中,如图6A所示,若图像处理装置先对原始图像进行列变换,再对经列变换处理后的图像进行行变换,则该原始图像将执行如下步骤:
步骤601、获取原始图像的每一列像素。
其中,该原始图像的定义具体可以参阅前述步骤201中的介绍。
应当理解的是,图像处理装置获取原始图像的每一列像素,可以具体理解为,该图像处理装置读取到每一列像素中每一个像素的像素值和该像素在原始图像中的坐标。其中,该像素在原始图像中的坐标包含横坐标和纵坐标。
步骤602、获取该每一列像素对应的列变换参数。
本实施例中,步骤601和步骤602之间无时间先后顺序的限定。也就是说,图像处理装置可以先执行步骤601再执行步骤602,也可以先执行步骤602再执行步骤601,还可以同时执行前述步骤601和步骤602,具体此处不做限定。在后续实施例中,仅以图像处理装置可以先从原始图像中获取一列像素,再从获取该列像素对应的列变换参数为例进行介绍。
其中,该列变换参数用于指示该原始图像中像素的纵坐标与第二图像(即列变换结果)中像素的纵坐标之间的对应关系。该第二图像为列方向存在预畸变而行方向不存在预畸变的图像,该第二图像的纵坐标为整数。
可选的,该列变换参数包括与第五像素对应的第五像素取值点在该原始图像中的纵坐标,该第五像素取值点用于确定该第二图像中的该第五像素的像素值,该第五像素取值点在该原始图像中的横坐标与该第五像素在该第二图像中的横坐标相同。
可选的,前述列变换参数存储于列映射关系表中,该列变换参数在该列映射关系表中的位置用于表示基于该列变换参数确定的第五像素的坐标。
本实施例中,图像处理装置获取每一列像素对应的列变换参数的过程,具体可以为,图像处理装置从存储器中按照列方向顺序读取每一列像素对应的列变换参数。具体地,依据存储器的位宽每次读取列变换参数的个数不同,读取一列列变换参数需要激活存储器的次数不同。本实施例中,图像处理装置可以采用读取原始图像的方式读取该列映射关系表。具体请参阅步骤201中的示例。
步骤603、分别根据该原始图像中的每一列像素以及该每一列像素对应的列变换参数确定第二图像中每个像素的像素值。
其中,该第二图像为列方向存在预畸变而行方向不存在预畸变的图像,也就是说,该第二图像为待求的由原始图像经过列变换处理的结果。
本实施例中,图像处理装置计算该第二图像的过程,可以理解为,该图像处理装置确定第二图像中每个像素的像素值的过程。由于,该第二图像中每个像素的位置(即坐标)是已知的,即第二图像中的各个像素的横坐标和纵坐标均为连续的整数。因此,根据该第五像素的横坐标和纵坐标即可查询到该第二图像的列变换参数,即根据第五像素的横坐标和纵坐标查询具有相同横坐标和纵坐标的列变换参数。
具体地,该图像处理装置先根据该列变换参数确定与该第五像素对应的该第五像素取值点;然后,根据该第五像素取值点的纵坐标确定至少一个第七像素,该第七像素与该第五像素取值点位于同一列;然后,根据该至少一个第七像素的像素值确定该第五像素的像素值。
在一种可选的实施方式中,若前述第五像素取值点的纵坐标为整数,则该图像处理装置直接确定该第五像素取值点为该第七像素,然后,将该第七像素的像素值赋值于该第五像素,得到该第五像素的像素值。
在一种可选的实施方式中,若前述第五像素取值点的纵坐标为非整数,则该图像处理装置确定至少一个邻近该第五像素取值点的像素为该第七像素,该邻近该第五像素取值点的像素与该第五像素取值点位于同一列;然后,采用插值算法根据该第五像素取值点的纵坐标以及该至少一个第七像素的纵坐标,对该至少一个第七像素的像素值求第一加权平均值;将该第一加权平均值赋值于该第五像素,得到该第五像素的像素值。
具体地,与前述步骤203的内容类似,请参阅前述步骤203中的介绍。
步骤604、获取该第二图像的每一行像素。
其中,该第二图像为列方向存在预畸变而行方向不存在预畸变的图像,也就是说,该第二图像为待求的由原始图像经过列变换处理的结果。
具体地,该图像处理装置从存储器中依次读取前述第二图像的每一行像素。若该图像处理装置每列像素的像素值按列写入存储器中,则该图像处理装置将按行读取该存储器中的第二图像的每一行像素。若该图像处理装置将每列像素的像素值进行转置处理,并将每列像素按行写入存储器中,则该图像处理装置将按列读取该存储器中的第二图像的每一行像素。
步骤605、获取该每一行像素对应的行变换参数。
本实施例中,步骤604和步骤605之间无时间先后顺序的限定。也就是说,图像处理装置可以先执行步骤604再执行步骤605,也可以先执行步骤605再执行步骤604,还可以同时执行前述步骤604和步骤605,具体此处不做限定。在后续实施例中,仅以图像处理装置可以先从第二图像中获取一行像素,再从获取该行像素对应的行变换参数为例进行介绍。
其中,该行变换参数用于指示该第二图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系。
可选的,该行变换参数包括与第六像素对应的第六像素取值点在该第二图像中的横坐标,该第六像素取值点用于确定该目标图像中的该第六像素的像素值,该第六像素取值点在该第二图像中的纵坐标与该第六像素在该目标图像中的纵坐标相同。
可选的,该行变换参数存储于行映射关系表中,该行变换参数在该行映射关系表中的位置用于表示基于该行变换参数确定的第六像素的坐标。
具体地,请参阅前述步骤205对应的介绍。
步骤606、分别根据该第二图像中的每一行像素以及该每一行像素对应的行变换参数确定每个目标图像的像素值。
其中,该目标图像为用于抵消成像装置成像畸变的该预畸变图像。
具体地,该图像处理装置根据该行变换参数确定与该第六像素对应的该第六像素取值点;根据该第六像素取值点的横坐标确定至少一个第八像素,该第八像素与该第六像素取值点位于同一行;根据该至少一个第八像素的像素值确定该第六像素的像素值。
在一种可选的实施方式中,若前述第六像素取值点的横坐标为整数,则图像处理装置确定该第六像素取值点为该第八像素,然后,将该第八像素的像素值赋值于该第六像素,得到该第六像素的像素值。
在一种可选的实施方式中,若前述第六像素取值点的横坐标为非整数,则图像处理装置确定至少一个邻近该第六像素取值点的像素为该第八像素,该邻近该第六像素取值点的像素与该第六像素取值点位于同一横;然后,采用插值算法根据该第六像素取值点的横坐标以及该至少一个第八像素的横坐标,对该至少一个第八像素的像素值求第二加权平均值;将该第二加权平均值赋值于该第六像素,得到该第六像素的像素值。
具体地,请参阅前述步骤206对应的介绍。
步骤607、将前述目标图像发送至成像装置。
其中,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。
本实施例中,步骤607为可选的步骤。
本实施例中,图像处理装置在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。如图6B所示,该图像处理装置先对原始图像中的每一列像素进行列变换(即图6B中步骤①),再基于列变换结果(即第二图像)对其中的每一行像素进行行变换(即图6B中步骤②),得到目标图像。也就是说,该图像处理装置在计算第二图像中的一列像素时,仅需要读取原始图像中的一列像素,而不需要跨列读取;类似的,图像处理装置在计算目标图像的一行像素时,也仅需要读取第二图像中的一行像素,而不需要跨行读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。
如图7所示,为本申请实施例提供的一种图像处理装置70的结构示意图。该图像处理装置70可以位于平视显示器HUD(也被称为抬头显示器)、头盔显示器HMD或投影仪中。该图像处理装置可以是位于前述平视显示器HUD、头盔显示器HMD或投影仪中的图像处理芯片。前述图2和图6A对应的实施例中的步骤可以由该图像处理装置70执行。
该图像处理装置70包括至少一个处理器701和至少一个存储器702。前述处理器701和前述存储器702通过线路互联。应当理解的是,图7仅示出了一个处理器701和一个存储器702。
其中,该处理器701可以是现场可编程逻辑门阵列(field programmable gatearray,FPGA)、数字信号处理(digital signal process,DSP)、中央处理器(centralprocessing unit,CPU)或图形处理器(graphics processing unit,GPU)等具有图像处理功能的功能单元或功能模块。
另外,前述处理器701可以是一个单核处理器;也可以是一个多核处理器,例如,该处理器701可以是由多个FPGA或多个DSP组成。此时,该处理器701可以同时对多张图像进行处理。例如,若处理器701中包含FPGA1和FPGA2两个FPGA,则由FPGA1在对图像1进行行变换处理之后,将行变换结果发送至FPGA2,由FPGA2对图像1的行变换结果进行列变换处理。在该FPGA2对前述图像1的行变换结果进行列变换处理的同时,该FPGA1可以继续对下一个图像(例如,图像2)进行行变换处理,然后,将图像2的行变换结果发送至FPGA2,由FPGA2对图像2的行变换结果进行列变换处理。
此外,处理器701可以指一个或多个装置、电路和/或用于处理数据(例如计算机程序指令)的处理核。该处理器701可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个片上系统(system-on-a-chip,SoC),或者也可以作为一个特殊应用集成电路(application specific integrated circuit,ASIC)的内置处理器集成在所述ASIC当中,该集成了处理器的ASIC可以单独封装或者也可以跟其他电路封装在一起。
此外,前述存储器702可以是只读存储器(read-only memory,ROM),也可以是可存储静态信息和指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM),也可以是可存储信息和指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM),具体此处不做限定。示例性的,前述存储器702可以为双倍速率同步动态随机存储器DDRSDRAM)(简称DDR)。该存储器702可以是独立存在,但与前述处理器701相连。可选的,该存储器702也可以和前述处理器701集成于一体。例如,集成于一个或多个芯片之内。
此外,该存储器702可以理解为是图像处理装置70的内部存储器,该存储器702用于存储从外部存储器读取的行映射关系表、列映射关系表以及原始图像。该存储器702还用于存储计算目标图像过程中产生的中间图像。示例性的,基于原始图像生成的行变换结果(例如,前述第一图像),或,基于原始图像生成的列变换结果(例如,前述第二图像)。该存储器702还用于存储执行本申请实施例的技术方案的程序代码。前述程序代码可以由处理器701来控制执行,被执行的各类计算机程序代码也可被视为是处理器701的驱动程序。
可选的,该图像处理装置70还包括通信接口703,该通信接口703用于外部存储器或其他设备进行通信。图像处理装置70可以通过该通信接口703接收来自其他设备的指令或数据。示例性的,该图像处理装置70可以通过前述通信接口703从外部存储器中读取行映射关系表、列映射关系表以及原始图像。
示例性的,前述处理器701可以从外部存储器或内部存储器中获取原始图像的每一行像素,以及该每一行像素对应的行变换参数。然后,该处理器701分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数确定该第一图像中每个像素的像素值,得到第一图像。然后,该处理器701将前述第一图像存储于内部存储器中。然后,该处理器再从前述内部存储器中获取该第一图像的每一列像素,并且,从外部存储器或内部存储器中获取每一列像素对应的列变换参数。然后,处理器701分别根据该第一图像中的每一列像素以及该每一列像素对应的列变换参数确定该目标图像中每个像素的像素值,得到目标图像。可选的,该处理器701将前述目标图像存储至外部存储器中。
可选的,该处理器701根据该行变换参数确定与该第一像素对应的该第一像素取值点;然后,根据该第一像素取值点的横坐标确定至少一个第三像素,该第三像素与该第一像素取值点位于同一行;然后,根据该至少一个第三像素的像素值确定该第一像素的像素值。
可选的,该处理器701根据该列变换参数确定与该第二像素对应的该第二像素取值点;然后,根据该第二像素取值点的纵坐标确定至少一个第四像素,该第四像素与该第二像素取值点位于同一列;然后,根据该至少一个第四像素的像素值确定该第二像素的像素值。
示例性的,前述处理器701可以从外部存储器或内部存储器中获取原始图像的每一列像素,以及该每一列像素对应的列变换参数。然后,该处理器701分别根据该原始图像中的每一列像素以及该每一列像素对应的列变换参数确定该第二图像中每个像素的像素值,得到第二图像。然后,该处理器701将前述第二图像存储于内部存储器中。然后,该处理器再从前述内部存储器中获取该第二图像的每一行像素,并且,从外部存储器或内部存储器中获取每一行像素对应的行变换参数。然后,处理器701分别根据该第二图像中的每一行像素以及该每一行像素对应的行变换参数确定该目标图像中每个像素的像素值,得到目标图像。可选的,该处理器701将前述目标图像存储至外部存储器中。
可选的,该处理器701根据该列变换参数确定与该第五像素对应的该第五像素取值点;根据该第五像素取值点的纵坐标确定至少一个第七像素,该第七像素与该第五像素取值点位于同一列;根据该至少一个第七像素的像素值确定该第五像素的像素值。
可选的,该处理器701根据该行变换参数确定与该第六像素对应的该第六像素取值点;根据该第六像素取值点的横坐标确定至少一个第八像素,该第八像素与该第六像素取值点位于同一行;根据该至少一个第八像素的像素值确定该第六像素的像素值。
本实施例中,处理器701在基于原始图像确定目标图像(即预畸变图像)时,将图像重映射分解为两次单方向的映射。具体地,处理器701先对原始图像中的每一行像素进行行变换,再基于行变换结果(即第一图像)对其中的每一列像素进行列变换,得到目标图像;或,先对原始图像中的每一列像素进行列变换,再基于列变换结果对每一行像素进行行变换,得到该目标图像。也就是说,处理器701在计算第一图像中的一行像素时,仅需要读取原始图像中的一行像素,而不需要跨行读取;类似的,处理器701在计算目标图像的一列像素时,也仅需要读取第一图像中的一列像素,而不需要跨列读取。因此,图像处理装置在处理原始图像时可以有序读取,进而提高了图像处理装置处理原始图像的效率。
另外,由于该处理器701从存储器702读取行映射关系表、列映射关系表、原始图像、第一图像以及第二图像时,该处理器701无需跨行乱序读取,减少了存储器702中存储单元被激活的次数,提高了存储器702的使用寿命。
其余可以参考图2和图6A对应实施例中图像重映射方法,此处不再赘述。
本申请实施例中还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有行映射关系表、列映射关系表,以及用于生成目标图像的程序,当前述计算机程序在计算机上运行时,可以使得计算机执行如前述图2或图6A所示实施例介绍的方法。
在一种可能的实现方式中,前述图7所示的图像处理装置70为芯片,该芯片也被称为数字处理芯片。该芯片包括处理单元和通信单元。其中,处理单元通过通信单元获取程序指令,该程序指令被处理单元执行,以使得该处理单元执行前述图2或图6A对应实施例介绍的方法步骤。具体地,该处理单元为集成了上述处理器701或者用于实现上述处理器701的功能的电路,该通信单元为集成了上述通信接口703或者用于实现上述通信接口703的功能的电路或接口。
可选的,当该芯片中集成了存储单元时,该存储单元可以是存储器等存储装置。此时,该芯片中的处理单元可以从该存储单元中调用程序代码以实现前述图2或图6A对应实施例所介绍的方法步骤。当该芯片未集成存储单元时,该芯片可以通过前述通信单元与外置的存储器等存储装置连接,以使得从前述外置的存储器中获取程序代码以实现前述图2或图6A对应实施例所介绍的方法步骤。
如图8所示,为本申请实施例提供了一种图像处理装置80的结构示意图。前述图2和图6A对应的方法实施例均可以基于图8所示的图像处理装置80的结构。
该图像处理装置80包括多个功能模块,前述各个功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
具体地,该图像处理装置80可以位于平视显示器HUD(也被称为抬头显示器)或头盔显示器HMD中。该图像处理装置可以是位于前述平视显示器HUD或头盔显示器HMD中的图像处理芯片。前述图2和图6A对应的实施例中的步骤可以由该图像处理装置80执行。具体地,该图像处理装置80包括获取模块801和计算模块802。
示例性的,获取模块801,用于获取原始图像的每一行像素,以及,获取该每一行像素对应的行变换参数。其中,该行变换参数用于指示该原始图像中像素的横坐标与第一图像中像素的横坐标之间的对应关系,该第一图像为行方向存在预畸变而列方向不存在预畸变的图像。
示例性的,计算模块802,用于分别根据该原始图像中的每一行像素以及该每一行像素对应的行变换参数确定该第一图像中每个像素的像素值。
示例性的,该获取模块801,还用于获取该第一图像的每一列像素,以及,获取该每一列像素对应的列变换参数,该列变换参数用于指示该第一图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系,该目标图像为行方向存在预畸变且列方向存在预畸变的图像。
示例性的,该计算模块802,还用于分别根据该第一图像中的每一列像素以及该每一列像素对应的列变换参数确定该目标图像中每个像素的像素值,该目标图像用于抵消成像装置的成像畸变以展示该原始图像。
在一种可选的实施方式中,该计算模块802,具体用于:根据该行变换参数确定与该第一像素对应的该第一像素取值点;根据该第一像素取值点的横坐标确定至少一个第三像素,该第三像素与该第一像素取值点位于同一行;根据该至少一个第三像素的像素值确定该第一像素的像素值。
在一种可选的实施方式中,根据该列变换参数确定与该第二像素对应的该第二像素取值点;根据该第二像素取值点的纵坐标确定至少一个第四像素,该第四像素与该第二像素取值点位于同一列;根据该至少一个第四像素的像素值确定该第二像素的像素值。
在一种可选的实施方式中,该图像处理装置80还包括存储模块803;
该存储模块,用于存储该第一图像的每一行的该第一像素至存储器中。
在一种可选的实施方式中,该获取801模块,具体用于:
从存储器中按照行方向顺序读取该每一行像素对应的行变换参数;
从存储器中按照列方向顺序读取该每一列像素对应的列变换参数。
在一种可选的实施方式中,该图像处理装置80还包括发送模块804;
该发送模块804,用于将该目标图像发送至该成像装置,该成像装置用于基于前述目标图像进行成像,以使得基于前述目标图像在成像平面投射出前述原始图像。其中,该成像装置可以是投影式成像系统。
其余可以参考图2或图6A对应实施例中图像处理装置的方法,此处不再赘述。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。还应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种图像重映射方法,其特征在于,包括:
获取原始图像的每一行像素;
获取所述每一行像素对应的行变换参数,所述行变换参数用于指示所述原始图像中像素的横坐标与第一图像中像素的横坐标之间的对应关系,所述第一图像为行方向存在预畸变而列方向不存在预畸变的图像;
分别根据所述原始图像中的每一行像素以及所述每一行像素对应的行变换参数确定所述第一图像中每个像素的像素值;
获取所述第一图像的每一列像素;
获取所述每一列像素对应的列变换参数,所述列变换参数用于指示所述第一图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系,所述目标图像为行方向存在预畸变且列方向存在预畸变的图像;
分别根据所述第一图像中的每一列像素以及所述每一列像素对应的列变换参数确定所述目标图像中每个像素的像素值,所述目标图像用于抵消成像装置的成像畸变以展示所述原始图像。
2.根据权利要求1所述的方法,其特征在于,
所述行变换参数包括与第一像素对应的第一像素取值点在所述原始图像中的横坐标,所述第一像素为所述第一图像中的任一像素,所述第一像素取值点用于确定所述第一像素的像素值,所述第一像素取值点在所述原始图像中的纵坐标与所述第一像素在所述第一图像中的纵坐标相同;
所述列变换参数包括与第二像素对应的第二像素取值点在所述第一图像中的纵坐标,所述第二像素为所述目标图像中的任一像素,所述第二像素取值点用于确定所述第二像素的像素值,所述第二像素取值点在所述第一图像中的横坐标与所述第二像素在所述目标图像中的横坐标相同。
3.根据权利要求2所述的方法,其特征在于,
所述行变换参数存储于行映射关系表中,所述行变换参数在所述行映射关系表中的位置用于指示所述第一像素的坐标;
所述列变换参数存储于列映射关系表中,所述列变换参数在所述列映射关系表中的位置用于指示所述第二像素的坐标。
4.根据权利要求2或3所述的方法,其特征在于,
所述分别根据所述原始图像中的每一行像素以及所述每一行像素对应的行变换参数确定所述第一图像中每个像素的像素值,包括:
根据所述行变换参数确定与所述第一像素对应的所述第一像素取值点;
根据所述第一像素取值点的横坐标确定至少一个第三像素,所述第三像素与所述第一像素取值点位于同一行;
根据所述至少一个第三像素的像素值确定所述第一像素的像素值;
所述分别根据所述第一图像中的每一列像素以及所述每一列像素对应的列变换参数确定所述目标图像中每个像素的像素值,包括:
根据所述列变换参数确定与所述第二像素对应的所述第二像素取值点;
根据所述第二像素取值点的纵坐标确定至少一个第四像素,所述第四像素与所述第二像素取值点位于同一列;
根据所述至少一个第四像素的像素值确定所述第二像素的像素值。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述分别根据所述原始图像中的每一行像素以及所述每一行像素对应的行变换参数确定所述第一图像中每个像素的像素值之后,所述方法还包括:
存储所述第一图像的每一行的所述第一像素。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述方法还包括:
将所述目标图像发送至所述成像装置,所述成像装置用于基于所述目标图像进行成像,以使得基于所述目标图像在成像平面投射出所述原始图像。
7.一种图像处理装置,其特征在于,包括:
获取模块,用于获取原始图像的每一行像素;
所述获取模块,还用于获取所述每一行像素对应的行变换参数,所述行变换参数用于指示所述原始图像中像素的横坐标与第一图像中像素的横坐标之间的对应关系,所述第一图像为行方向存在预畸变而列方向不存在预畸变的图像;
计算模块,用于分别根据所述原始图像中的每一行像素以及所述每一行像素对应的行变换参数确定所述第一图像中每个像素的像素值;
所述获取模块,还用于获取所述第一图像的每一列像素;
所述获取模块,还用于获取所述每一列像素对应的列变换参数,所述列变换参数用于指示所述第一图像中像素的纵坐标与目标图像中像素的纵坐标之间的对应关系,所述目标图像为行方向存在预畸变且列方向存在预畸变的图像;
所述计算模块,还用于分别根据所述第一图像中的每一列像素以及所述每一列像素对应的列变换参数确定所述目标图像中每个像素的像素值,所述目标图像用于抵消成像装置的成像畸变以展示所述原始图像。
8.根据权利要求7所述的图像处理装置,其特征在于,
所述行变换参数包括与第一像素对应的第一像素取值点在所述原始图像中的横坐标,所述第一像素为所述第一图像中的任一像素,所述第一像素取值点用于确定所述第一像素的像素值,所述第一像素取值点在所述原始图像中的纵坐标与所述第一像素在所述第一图像中的纵坐标相同;
所述列变换参数包括与第二像素对应的第二像素取值点在所述第一图像中的纵坐标,所述第二像素为所述目标图像中的任一像素,所述第二像素取值点用于确定所述第二像素的像素值,所述第二像素取值点在所述第一图像中的横坐标与所述第二像素在所述目标图像中的横坐标相同。
9.根据权利要求8所述的图像处理装置,其特征在于,
所述行变换参数存储于行映射关系表中,所述行变换参数在所述行映射关系表中的位置用于指示所述第一像素的坐标;
所述列变换参数存储于列映射关系表中,所述列变换参数在所述列映射关系表中的位置用于指示所述第二像素的坐标。
10.根据权利要求8或9所述的图像处理装置,其特征在于,
所述计算模块,具体用于:
根据所述行变换参数确定与所述第一像素对应的所述第一像素取值点;
根据所述第一像素取值点的横坐标确定至少一个第三像素,所述第三像素与所述第一像素取值点位于同一行;
根据所述至少一个第三像素的像素值确定所述第一像素的像素值;
根据所述列变换参数确定与所述第二像素对应的所述第二像素取值点;
根据所述第二像素取值点的纵坐标确定至少一个第四像素,所述第四像素与所述第二像素取值点位于同一列;
根据所述至少一个第四像素的像素值确定所述第二像素的像素值。
11.根据权利要求7至10中任意一项所述的图像处理装置,其特征在于,所述图像处理装置还包括存储模块;
所述存储模块,用于存储所述第一图像的每一行的所述第一像素至存储器中。
12.根据权利要求7至11中任意一项所述的图像处理装置,其特征在于,所述行映射关系表和所述列映射关系表存储于存储器中,所述行映射关系表包括所述原始图像中每一行像素对应的所述行变换参数,所述列映射关系表包括所述原始图像中每一列像素对应的列变换参数;
所述获取模块,具体用于:
从存储器中按照行方向顺序读取所述每一行像素对应的行变换参数;
从存储器中按照列方向顺序读取所述每一列像素对应的列变换参数。
13.根据权利要求7至12中任意一项所述的图像处理装置,其特征在于,所述图像处理装置还包括发送模块;
所述发送模块,用于将所述目标图像发送至所述成像装置,所述成像装置用于基于所述目标图像进行成像,以使得基于所述目标图像在成像平面投射出所述原始图像。
14.一种图像处理装置,其特征在于,包括:
处理器和内部存储器,所述处理器和所述内部存储器耦合;
所述处理器,用于从外部存储器中读取行映射参数表和列映射参数表至所述内部存储器中;
所述内部存储器还存储有程序,当所述内部存储器存储的程序指令被所述处理器执行时使得所述图像处理装置实现权利要求1至6中任意一项所述的方法。
15.一种成像装置,其特征在于,包括:
图像处理装置和显示装置;
所述图像处理装置用于按照如权利要求1至6中任意一项所述的方法根据原始图像生成目标图像,并将所述目标图像发送至所述显示装置,以使得所述成像装置投射出所述原始图像。
16.一种计算机可读存储介质,包括计算机程序,所述计算机序被处理器执行以实现如权利要求1至6中任意一项所述的方法。
CN202011510725.7A 2020-12-18 2020-12-18 一种图像重映射方法以及图像处理装置 Pending CN114648449A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011510725.7A CN114648449A (zh) 2020-12-18 2020-12-18 一种图像重映射方法以及图像处理装置
PCT/CN2021/138619 WO2022127841A1 (zh) 2020-12-18 2021-12-16 一种图像重映射方法以及图像处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011510725.7A CN114648449A (zh) 2020-12-18 2020-12-18 一种图像重映射方法以及图像处理装置

Publications (1)

Publication Number Publication Date
CN114648449A true CN114648449A (zh) 2022-06-21

Family

ID=81990857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011510725.7A Pending CN114648449A (zh) 2020-12-18 2020-12-18 一种图像重映射方法以及图像处理装置

Country Status (2)

Country Link
CN (1) CN114648449A (zh)
WO (1) WO2022127841A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115113424A (zh) * 2022-06-24 2022-09-27 利亚德光电股份有限公司 数据存取方法、装置、非易失性存储介质及图像处理设备
CN116433535A (zh) * 2023-06-12 2023-07-14 合肥埃科光电科技股份有限公司 一种二次曲线拟合的点坐标去畸变方法、系统及存储介质
CN115113424B (zh) * 2022-06-24 2024-06-04 利亚德光电股份有限公司 数据存取方法、装置、非易失性存储介质及图像处理设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116152121B (zh) * 2023-04-20 2023-07-04 合肥高维数据技术有限公司 基于畸变参数的曲面屏生成方法、矫正方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104363986B (zh) * 2014-10-31 2017-06-13 华为技术有限公司 一种图像处理方法和设备
CN104504677B (zh) * 2014-11-17 2017-09-22 南京泓众电子科技有限公司 一种基于可变视角的图像生成方法
CN107424126A (zh) * 2017-05-26 2017-12-01 广州视源电子科技股份有限公司 图像校正方法、装置、设备、系统及摄像设备和显示设备
GB201720250D0 (en) * 2017-12-05 2018-01-17 Digitalbridge System and method for generating training images
CN111839580B (zh) * 2020-07-22 2024-05-24 桂林市啄木鸟医疗器械有限公司 牙片影像生成方法、装置、电子设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115113424A (zh) * 2022-06-24 2022-09-27 利亚德光电股份有限公司 数据存取方法、装置、非易失性存储介质及图像处理设备
CN115113424B (zh) * 2022-06-24 2024-06-04 利亚德光电股份有限公司 数据存取方法、装置、非易失性存储介质及图像处理设备
CN116433535A (zh) * 2023-06-12 2023-07-14 合肥埃科光电科技股份有限公司 一种二次曲线拟合的点坐标去畸变方法、系统及存储介质
CN116433535B (zh) * 2023-06-12 2023-09-05 合肥埃科光电科技股份有限公司 一种二次曲线拟合的点坐标去畸变方法、系统及存储介质

Also Published As

Publication number Publication date
WO2022127841A1 (zh) 2022-06-23

Similar Documents

Publication Publication Date Title
KR101785027B1 (ko) 화면 왜곡 보정이 가능한 디스플레이 장치 및 이를 이용한 화면 왜곡 보정 방법
CN106919360B (zh) 一种头部姿态补偿方法及装置
WO2022127841A1 (zh) 一种图像重映射方法以及图像处理装置
US10578868B2 (en) Head-mounted display and video data processing method thereof
JP2007006175A (ja) 車両用画像生成装置および方法
TW202208938A (zh) 顯示不均勻性的校正
JPS6380375A (ja) テクスチヤマツピング装置
CN110659005A (zh) 数据处理系统
JP2024502772A (ja) 合成イメージの生成
JP2008543071A (ja) ワーピング演算ユニットを有する集積回路
US10672110B2 (en) Information processing system, information processing apparatus, output apparatus, program, and recording medium
US20130278598A1 (en) Texture mapping device
JP6239843B2 (ja) 画像処理装置およびその制御方法
US9761160B2 (en) Image processing device, display apparatus, image processing method, and program
US10930185B2 (en) Information processing system, information processing apparatus, output apparatus, program, and recording medium
US6377270B1 (en) Method and system for transforming color coordinates by direct calculation
JP4642431B2 (ja) 地図表示装置、地図表示システム、地図表示方法およびプログラム
EP2811454B1 (en) Image transformation
JPH10232953A (ja) 立体視画像生成装置
JP2017016511A (ja) 歪み補正画像処理装置及びプログラム
JP2009288713A (ja) 表示装置
US11721084B2 (en) Electronic device and method for correcting image latency
US11710212B1 (en) Display non-uniformity correction
US11754846B2 (en) Display non-uniformity correction
WO2023178539A1 (zh) 图像处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination