掌桥专利:专业的专利平台
掌桥专利
首页

投影仪的梯形校正方法、装置、设备及计算机存储介质

文献发布时间:2024-04-18 20:02:18


投影仪的梯形校正方法、装置、设备及计算机存储介质

技术领域

本申请属于光学技术领域,尤其涉及一种投影仪的梯形校正方法、装置、设备及计算机存储介质。

背景技术

在投影仪的使用中,投影仪的位置需要与投影屏幕成直角才能保证投影效果,如果无法保证二者的垂直,投影画面就会产生梯形畸变。但在实际使用过程中,很难保证二者的垂直。因此,投影设备通常都具备梯形校正功能,通过梯形校正消除投影画面的梯形畸变。

目前很多投影仪都是通过软件实现梯形校正,即不通过硬件,直接通过软件算法实现梯形校正。

但是在投影仪进行OTA(Over-the-Air Technology,空中下载技术)升级时,采用软件实现的梯形校正通常会失效,从而导致升级过程中投影画面出现梯形畸变,影响用户体验。

发明内容

本申请实施例提供一种投影仪的梯形校正方法、装置、设备及计算机存储介质,能够对投影仪升级时的画面进行梯形校正,提升用户体验。

第一方面,本申请实施例提供一种投影仪的梯形校正方法,包括:

投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源;

投影仪在升级过程中,在确定需要进行资源显示时,对第二资源进行显示。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

投影仪在升级过程中,在进行资源加载时,或,在进行资源显示时,利用梯形校正矩阵对第一资源进行梯形校正,得到校正后的第二资源。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

投影仪在升级之前,将第一资源加载到内存中;

利用梯形校正矩阵对内存中的第一资源进行梯形校正,得到校正后的第二资源;

将第二资源存储到指定的目标系统分区。

作为一种可能的实现方式,投影仪在升级过程中,在确定需要进行资源显示时,对第二资源进行显示,包括:

投影仪在升级系统初始化时,挂载到目标系统分区,并加载目标系统分区中存储的第二资源;

在升级过程中,在确定需要进行资源显示时,对第二资源进行显示。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

针对第一资源中的背景图片,将背景图片中的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标;

将所有像素点按照新坐标排列组成的图片作为目标图片;

根据目标图片生成第二资源。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

针对第一资源中的非全屏资源,申请一个全屏尺寸的缓冲区;

将非全屏资源按照其在屏幕中的显示位置添加到缓冲区的对应位置处,得到缓冲区对应的第一缓冲区数据;

将第一缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标;

将所有目标像素点按照新坐标排列组成的图片作为目标图片,其中目标像素点为所有像素点中与非全屏资源对应的像素点;

根据目标图片生成第二资源。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

申请一个全屏尺寸的缓冲区;

将第一资源中的背景图片填充至缓冲区,得到缓冲区对应的第二缓冲区数据;

将第一资源中的非全屏资源按照其在屏幕中的显示位置添加到缓冲区的对应位置处,得到缓冲区对应的第三缓冲区数据;

将第三缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标;

将所有像素点按照新坐标组成的图片作为目标图片;

根据目标图片生成第二资源。

第二方面,本申请实施例提供一种投影仪的梯形校正装置,包括:

资源校正模块,用于投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源;

资源显示模块,用于投影仪在升级过程中,在确定需要进行资源显示时,对第二资源进行显示。

第三方面,本申请实施例提供一种电子设备,设备包括:处理器以及存储有计算机程序指令的存储器;

处理器执行计算机程序指令时实现如第一方面的投影仪的梯形校正方法。

第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面的投影仪的梯形校正方法。

本申请实施例的投影仪的梯形校正方法、装置、设备及计算机存储介质,利用预设的梯形校正矩阵对投影仪升级所需的第一资源进行梯形校正,得到梯形校正后的第二资源,在投影仪升级过程中,在需要进行资源显示时,对第二资源进行显示。如此使得升级过程中显示的画面也不会出现梯形畸变,实现了对投影仪升级时的画面的梯形校正。根据本实施例,无需采用传统的梯形校正算法,只需一个梯形校正矩阵即可实现梯形校正,使得梯形校正得到的极大的简化,即使是用于进行升级的小系统也可以轻松实现梯形校正。

附图说明

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

图1是本申请一个实施例提供的一种投影仪的梯形校正方法的流程示意图;

图2是本申请一个实施例提供的全屏图片进行梯形校正前和梯形校正后在屏幕坐标系中的示意图;

图3是本申请另一个实施例提供的一种投影仪的梯形校正方法的流程示意图;

图4是本申请一个实施例提供的一种对非全屏资源进行梯形校正的流程示意图;

图5是本申请另一个实施例提供的一种对背景图片和非全屏资源统一进行梯形校正的流程示意图;

图6是本申请一个实施例提供的投影仪的梯形校正装置的结构示意图;

图7是本申请一个实施例提供的电子设备的结构示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

投影仪中通常设置有两个系统,一个是正常运行时所使用的操作系统,比如android系统、Windows系统、Symbian系统、iOS的Core Graphics系统等,一个是用于进行OTA升级的升级系统,比如recovery系统,两个系统完全独立。

投影仪在进行升级时使用的是单独的升级系统,由于升级系统通常为单独运行的小系统,其功能不像操作系统一样强大,而传统的梯形校正算法通常比较复杂,这就导致升级系统无法实现传统的梯形校正算法,使得投影仪在升级时无法利用传统的梯形校正算法进行梯形校正,进而导致升级过程中的画面产生梯形畸变。

鉴于此,本申请实施例提供了一种新的投影仪的梯形校正方法,其能够对投影仪升级时的画面进行梯形校正。本申请实施例提供的投影仪的梯形校正方法可以由投影仪执行,具体可以由投影仪内设置的控制器等控制装置执行。

参见图1,为本申请实施例提供的一种投影仪的梯形校正方法的流程示意图,如图1所示,本实施例提供的投影仪的梯形校正方法可以包括如下步骤:

S11.投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源。

其中,梯形校正矩阵为用于对资源进行梯形校正的矩阵。

在一个示例中,在S11之前可以采用下述方式设置梯形校正矩阵:

获取投影仪中的全屏图片在进行梯形校正前的第一屏幕坐标A,和进行梯形校正后的第二屏幕坐标B,计算A和B之间存在的单应性矩阵H,使得B=H·A,将计算得到的单应性矩阵H作为梯形校正矩阵。其中,第二屏幕坐标B可以是通过用户手动进行梯形校正后得到的。

参见图2,为全屏图片进行梯形校正前和梯形校正后在屏幕坐标系中的示意图。其中,屏幕坐标系以左上角为坐标原点,其中左侧为梯形校正前的全屏图片,其对应的第一屏幕坐标A为[(ltx,lty)(rtx,rty)(lbx,lby)(rbx,rby)],右侧为梯形校正后的全屏图片,其对应的第二屏幕坐标B为[(ltx′,lty′)(rtx′,rty′)(lbx′,lby′)(rbx′,rby′)]。

投影仪中升级所需的资源也即第一资源,通常是预先设置好并存储在升级系统中的,因此可以直接确定并获取。

S12.投影仪在升级过程中,在确定需要进行资源显示时,对第二资源进行显示。

因为第二资源是对第一资源进行梯形校正后得到的,所以第二资源已经消除了梯形畸变,因此对第二资源进行显示可以保证显示的画面不会出现梯形畸变。

本实施例提供的一种投影仪的梯形校正方法,利用预设的梯形校正矩阵对投影仪升级所需的第一资源进行梯形校正,得到梯形校正后的第二资源,在投影仪升级过程中,在需要进行资源显示时直接对第二资源进行显示。如此使得升级过程中显示的画面也不会出现梯形畸变,实现了对投影仪升级时的画面的梯形校正。根据本实施例,无需采用传统的梯形校正算法,只需一个梯形校正矩阵即可实现梯形校正,使得梯形校正得到的极大的简化,即使是用于进行升级的小系统也可以轻松实现梯形校正。

在一个示例性的实施例中,投影仪的升级过程包括升级系统初始化。在S11中,投影仪可以在升级系统初始化过程中,在进行资源加载时,利用梯形校正矩阵对第一资源进行梯形校正,从而得到梯形校正后的第二资源。其中,升级系统为投影仪中用于进行升级的系统,比如recovery。

上述过程可以直接在升级系统中进行。

在采用上述方式对第一资源进行梯形校正的情况下,在S12中,投影仪在升级过程中,在进行资源显示的时候,可以直接将资源加载时校正得到的第二资源绘制到屏幕的对应位置即可,从而实现对资源的显示。在将第二资源绘制到屏幕的对应位置时,可以根据第二资源对应位置的屏幕坐标来进行绘制。

通过本实施例提供的投影仪的梯形校正方法,能够在资源加载过程中对升级所需的第一资源进行梯形校正,使得最终加载到的资源即为校正后的第二资源。如此,在资源显示时,直接对加载到的资源进行显示即可,保证了资源显示效率。

在另一个示例性的实施例中,在S11中,投影仪可以在升级过程中,在进行资源显示时,利用预设的梯形校正矩阵对第一资源进行梯形校正,得到校正后的第二资源。

上述过程可以直接在升级系统中进行。

在采用上述方式对第一资源进行梯形校正的情况下,投影仪在对升级系统初始化的过程中,可以按照原有流程进行资源加载,也即在资源加载时无需对第一资源进行梯形校正。

通过本实施例提供的投影仪的梯形校正方法,在升级系统初始化时,直接加载第一资源即可,无需对资源进行梯形校正,从而避免资源加载时间过长,保证了资源加载效率。

在又一个示例性的实施例中,在S11中,投影仪可以在升级之前,对第一资源进行梯形校正,得到校正后的第二资源。

具体的,在升级之前将第一资源加载到内存中,然后利用梯形校正矩阵对内存中的第一资源进行梯形校正,得到校正后的第二资源,并将第二资源存储到指定的目标系统分区。

上述过程可以在操作系统中进行,比如在android系统中进行。

因为操作系统和升级系统是两个独立的系统,所以为了可以在操作系统中对第一资源进行梯形校正处理,需要先将第一资源从升级系统中加载到操作系统的内存中,然后再对内存中的第一资源进行梯形校正。

在得到第二资源后之所以将第二资源存储到目标系统分区中,是为了防止关机或掉电导致第二资源丢失。其中,目标系统分区可以根据实际情况指定的操作系统中的一个分区。

在采用上述方式对第一资源进行梯形校正的情况下,在S12中,在投影仪升级时,可以在对升级系统初始化时,将升级系统挂载到目标系统分区,并加载目标系统分区中存储的第二资源,然后在升级过程中需要进行资源显示时,直接对加载的第二资源进行显示。通过将升级系统挂载到目标系统分区,可以保证在目标系统分区中存储有第二资源的情况下,在升级时能够从目标系统分区中获取到第二资源并显示,进而避免升级时出现画面梯形畸变。

通过本实施例提供的投影仪的梯形校正方法,能够在进行升级前,完成对升级所需的第一资源的梯形校正,得到校正后的第二资源,从而使得在升级过程中能够直接获取到第二资源,无需再进行梯形校正,在保证显示升级过程中显示的画面不会出现梯形畸变的前提下,保证了升级过程中的资源加载效率和资源显示效率,有效缩短了升级时间,提高了升级效率,进而提升了用户体验。

在实际应用中,也有可能出现目标系统分区中没有存储第二资源的情况,在这种情况下,升级系统挂载到目标系统分区后将无法从目标系统分区中加载到第二资源。基于此,为了保证可以顺利完成升级,在升级过程中,在无法从目标系统分区中加载到第二资源的情况下,可以直接加载第一资源,以保证能够完成升级。

参见图3,为本申请一示例性实施提供的投影仪的梯形校正方法的流程示意图。如图3所示,可以包括如下步骤:

S31.在升级之前,将第一资源加载到内存中,利用梯形校正矩阵对内存中的第一资源进行梯形校正,得到校正后的第二资源,将第二资源存储到指定的目标系统分区。

S32.在对升级系统初始化时,挂载到目标系统分区,并加载目标系统分区中存储的第二资源。

S33.判断是否加载到第二资源,若确定加载到第二资源,则执行S34,若确定没有加载到第二资源,则执行S35。

S34.在升级过程中需要进行资源显示时,对第二资源进行显示。

S35.加载第一资源,在升级过程中需要进行资源显示时,对第一资源进行显示。

如此,可以保证在无法从目标系统分区中获取到第二资源的情况下,也可以进行升级。

此外,在S33中判断出没有加载到第二资源的情况下,也可以不执行S35,而是执行如下步骤:加载第一资源,并在加载第一资源的过程中,或,在进行资源显示时,利用梯形校正矩阵对第一资源进行梯形校正,从而得到校正后的第二资源,然后在进行资源显示时对第二资源进行显示。如此,既保证了可以完成升级,又保证了升级时显示的画面不会出现梯形畸变。

以上主要是对进行梯形校正的时机的介绍,下面将对具体如何利用梯形校正矩阵对第一资源进行梯形校正进行说明。

第一资源中通常包括全屏资源和非全屏资源,其中,全屏资源通常指背景图片。

作为一种可能的实现方式,针对上述任意实施例提供的投影仪的梯形校正方法,在利用梯形校正矩阵对第一资源进行梯形校正时,可以对其中的背景图片和非全屏资源分别进行梯形校正。

针对第一资源中的背景图片,在对其进行梯形校正时可以包括:

将背景图片中的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标,将所有像素点按照新坐标排列组成的图片作为目标图片,根据目标图片生成第二资源。

第一资源通常分为两类,一种是图片,占4个通道的数据,最后一个通道是固定的。一种是文字,占1通道的数据,只有黑白两种情况。其中的文字实际也是一种图片,因此文字和图片通常为图片资源。

升级系统在对资源加载时便会获取到资源中像素的相关数据,包括像素的屏幕坐标。例如,以升级系统为recovery为例,recovery本身会将资源加载成为GRSurface类型,里面包含了资源的宽width,高height,通道pixel_bytes和数据data。data里面包含了每一个pixel(像素)的数据。由此可见第一资源的像素点数据可以直接获取到。

其中,将背景图片中的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,可以为将背景图片中的所有像素点的屏幕坐标按照像素点的排列方式组成一个坐标矩阵,将该坐标矩阵与梯形校正矩阵相乘,即可得到各像素点的新坐标。

所有像素点按照新坐标组成的图片即为进行梯形校正后背景图片对应的形变图片。

在一个示例中,在根据目标图片生成第二资源时,可以直接将目标图片作为第二资源。

在另一个示例中,考虑到资源通常需要由图形处理器GPU进行显示,而GPU的贴图要求为图片资源必需为矩形,但是经过梯形校正后的资源通常会变为梯形,也即目标图片的形状通常不是矩形,所以在根据目标图片生成第二资源时,可以确定目标图片的最小外接矩形,然后将该最小外接矩形对应的区域的图片作为第二资源。

在确定最小外接矩形时,可以确定最小外接矩形的四个顶点的屏幕坐标,然后将这四个顶点的屏幕坐标组成的区域作为最小外接矩形对应的区域。其中,四个顶点指左上角、左下角、右上角和右下角。

最小外接矩形四个顶点的屏幕坐标可以根据目标图片四个顶点的屏幕坐标来确定。具体的,最小外接矩形左上角的屏幕坐标的横坐标取目标图片左上角和左下角的屏幕坐标中横坐标的最小值,最小外接矩形左上角的屏幕坐标的纵坐标取目标图片左上角和右上角的屏幕坐标中纵坐标的最小值;最小外接矩形左下角的屏幕坐标的横坐标取目标图片左上角和左下角的屏幕坐标中横坐标的最小值,最小外接矩形左下角的屏幕坐标的纵坐标取目标图片左下角和右下角的屏幕坐标中纵坐标的最大值;最小外接矩形右上角的屏幕坐标的横坐标取目标图片右上角和右下角的屏幕坐标中横坐标的最大值,最小外接矩形右上角的屏幕坐标的纵坐标取目标图片左上角和右上角的屏幕坐标中纵坐标的最小值;最小外接矩形右下角的屏幕坐标的横坐标取目标图片右上角和右下角的屏幕坐标中横坐标的最大值,最小外接矩形右下角的屏幕坐标的纵坐标取目标图片左下角和右下角的屏幕坐标中纵坐标的最大值。

以目标图片左上角的屏幕坐标为(ltx′,lty′),左下角的屏幕坐标为(lbx′,lby′),右上角的屏幕坐标为(rtx′,rty′),右下角的屏幕坐标为(rbx′,rby′)为例,其对应的最小外接矩阵D的左上角的屏幕坐标(dx1,dy1),左下角的屏幕坐标为(dx3,dy3),右上角的屏幕坐标为(dx2,dy2),右下角的屏幕坐标为(dx4,dy4),分别采用下述方式确定:

dx1=MIN(ltx′,lbx′)dy1=MIN(lty′,rty′)

dx2=MAX(rtx′,rbx′)dy2=MIN(lty′,rty′)

dx3=MIN(ltx′,lbx′)dy3=MAX(lby′,rby′)

dx4=MAX(rtx′,rbx′)dy4=MAX(lby′,rby′)

针对第一资源中的非全屏资源,在对其进行梯形校正时可以包括:

申请一个全屏尺寸的缓冲区,将非全屏资源按照其在屏幕中的显示位置添加到缓冲区的对应位置处,得到缓冲区对应的第一缓冲区数据,将第一缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标,将所有目标像素点按照新坐标排列组成的图片作为目标图片,根据目标图片生成第二资源。其中目标像素点为所有像素点中与非全屏资源对应的像素点。

其中,全屏尺寸指的是投影仪的屏幕尺寸,具体可以根据投影仪的设置来获取。全屏尺寸的缓冲区即为尺寸、大小与投影仪的全屏图片(比如背景图片)一致的缓冲区,其中包含的横向像素点的个数与全屏图片的横向像素点个数一致,包含的纵向像素点的个数与全屏图片的纵向像素点的个数一致。缓冲区可以为帧缓冲区。

非全屏资源在屏幕中的显示位置是预先设置并存储的,因此可以直接获取。通常资源在屏幕中的显示位置指的是资源全屏模式下的显示位置。通常在对资源的显示位置进行存储时,是以屏幕坐标的形式来存储的,也即存储资源对应的屏幕坐标,基于此,在确定资源的显示位置时,获取资源的屏幕坐标然后,根据屏幕坐标确定资源在屏幕中的显示位置。

将非全屏资源添加到缓冲区中,即为利用非全屏资源包含的所有像素点的数据替换掉缓冲区中对应的位置的像素点的数据。如此,缓冲区中的数据发生改变,将改变后缓冲区的数据作为第一缓冲区数据。

其中,将第一缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,可以为将第一缓冲区数据中包含的所有像素点的屏幕坐标按照像素点的排列方式组成一个坐标矩阵,将该坐标矩阵与梯形校正矩阵相乘,即可得到各像素点的新坐标。

所有目标像素点按照新坐标组成的图片即为进行梯形校正后的非全屏资源对应的形变图片。

参见图4,为非全屏资源进行梯形校正的流程示意图,如图4所示,首先申请一个buffer,然后将非全屏资源Z添加到buffer中,然后对添加有Z的buffer基于梯形校正矩阵H进行梯形校正,得到buffer′,其中包含的Z′即为形变后的非全屏资源。

在一个示例中,在根据目标图片生成第二资源时,可以直接获取目标图片,然后将获取的目标图片作为第二资源。

其中,在获取目标图片时,可以根据目标像素点的新坐标确定目标像素点在buffer′中所对应的区域,然后截取该区域的图片,将截取到的图片作为目标图片。

在另一个示例中,考虑到资源通常需要由图形处理器GPU进行显示,而GPU的贴图要求为图片资源必需为矩形,但是经过梯形校正后的资源通常会变为梯形,也即目标图片的形状通常不是矩形,所以如图4所示,在根据目标图片生成第二资源时,可以确定buffer中目标图片的最小外接矩形D,然后将获取该最小外接矩形D对应的图片作为第二资源。

在确定目标图片的最小外接矩形时,采用的方式与前述确定目标图片对应的最小外接矩形的方式一致,此处不再赘述。

在对非全屏资源进行梯形校正时,之所以申请一个全屏尺寸的缓冲区,并基于该缓冲区进行梯形校正,是因为如果直接将非全屏资源中各像素点对应的屏幕坐标与梯形校正矩阵相乘,来进行梯形校正,则通过计算得到各像素点的新坐标所确定出的图片在全屏下会形变,无法满足梯形校正的需求,导致无法达到梯形校正的目的,而在基于全屏尺寸的缓冲区进行梯形校正则恰好可以解决这一问题,从而保证了最终得到的第二资源满足梯形校正的需求。

通过上述将背景图片和非全屏资源分别进行梯形校正的方式,最终得到的第二资源包括校正后的背景图片和校正后的非全屏资源,基于该第二资源在进行资源显示时,对校正后背景图片和非全屏资源进行分别渲染,在只有一个背景图片的情况下,每次切换画面时,只需针对非全屏资源进行刷新即可,无需进行全屏刷新,降低了GPU的占用率。

作为另一种可能的实现方式,针对上述任意实施例提供的投影仪的梯形校正方法,在利用梯形校正矩阵对第一资源进行梯形校正时,可以对其中的背景图片和非全屏资源统一进行梯形校正。

采用对背景图片和非全屏资源统一进行梯形校正的方式对第一资源进行梯形校正时,可以包括:

申请一个全屏尺寸的缓冲区,将第一资源中的背景图片填充至缓冲区,得到缓冲区对应的第二缓冲区数据,将第一资源中的非全屏资源按照其在屏幕中的显示位置添加到缓冲区的对应位置处,得到缓冲区对应的第三缓冲区数据,将第三缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标,将所有像素点按照新坐标排列组成的图片作为目标图片,根据目标图片生成第二资源。

其中,将背景图片填充值缓冲区,即为将缓冲区中的数据替换为背景图片对应的各像素点的数据,在将完成数据替换后,得到的缓冲区的数据作为第二缓冲区数据。

此处将非全屏资源添加到缓冲区中,指的是将非全屏资源添加到填充有背景图片的缓冲区中,即为利用非全屏资源包含的所有像素点的数据替换掉第二缓冲区数据中对应的位置的像素点的数据。如此,第二缓冲区数据发生改变,将改变后缓冲区的数据作为第三缓冲区数据。

其中,将第三缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,可以为将第三缓冲区数据中包含的所有像素点的屏幕坐标按照像素点的排列方式组成一个坐标矩阵,将该坐标矩阵与梯形校正矩阵相乘,即可得到各像素点的新坐标。

所有像素点按照新坐标组成的图片即为进行梯形校正后的背景图片和非全屏资源对应的形变图片。

参见图5,为对背景图片和非全屏资源统一进行梯形校正的流程示意图,如图5所示,首先申请一个buffer,然后将背景图片bg(Background)填充到buffer,之后再将非全屏资源Z添加到填充了bg的buffer中,然后对填充有bg且添加有Z的buffer基于梯形校正矩阵H进行梯形校正,得到包含bg′和Z′的形变图片,其中的bg′即为形变后的背景图片,Z′即为形变后的非全屏资源。

在一个示例中,在根据目标图片生成第二资源时,可以直接获取目标图片,然后将目标图片作为第二资源。

在另一个示例中,考虑到资源通常需要由图形处理器GPU进行显示,而GPU的贴图要求为图片资源必需为矩形,但是经过梯形校正后的资源通常会变为梯形,也即目标图片的形状通常不是矩形,基于此,在根据目标图片生成第二资源时,可以确定目标图片的最小外接矩形,然后将该最小外接矩形对应的图片作为第二资源。

在确定目标图片的最小外接矩形时,采用的方式与前述确定目标图片对应的最小外接矩形的方式一致,此处不再赘述。

通过上述对背景图片和非全屏资源统一进行梯形校正的方式,在校正过程中,无需对非全屏资源对应的形变后的图片进行截取,也即无需单独提取目标像素点组成的图片,使得梯形校正流程更简单。

基于上述实施例提供的投影仪的梯形校正方法,相应地,本申请还提供了投影仪的梯形校正装置的具体实现方式。请参见以下实施例。

参见图6,为本申请实施例提供的一种投影仪的梯形校正装置的结构示意图,如图6所示,本实施例提供的一种投影仪的梯形校正装置可以包括以下模块:

资源校正模块601,用于投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源;

资源显示模块602,用于投影仪在升级过程中,在确定需要进行资源显示时,对第二资源进行显示。

本申请实施例的投影仪的梯形校正装置,利用预设的梯形校正矩阵对投影仪升级所需的第一资源进行梯形校正,得到梯形校正后的第二资源,在投影仪升级过程中,在需要进行资源显示时,直接对第二资源进行显示。如此使得升级过程中显示的画面也不会出现梯形畸变,实现了对投影仪升级时的画面的梯形校正。根据本实施例,无需采用传统的梯形校正算法,只需一个梯形校正矩阵即可实现梯形校正,使得梯形校正得到的极大的简化,即使是用于进行升级的小系统也可以轻松实现梯形校正。

作为一种可能的实现方式,资源校正模块601可以用于:

投影仪在升级系统过程中,在进行资源加载时,或,在进行资源显示时,利用梯形校正矩阵对第一资源进行梯形校正,得到校正后的第二资源。

作为一种可能的实现方式,资源校正模块601可以用于:

投影仪在升级之前,将第一资源加载到内存中;

利用预设的梯形校正矩阵对内存中的第一资源进行梯形校正,得到校正后的第二资源;

将第二资源存储到指定的目标系统分区。

作为一种可能的实现方式,资源显示模块602可以用于:

投影仪在升级系统初始化时,挂载到目标系统分区,并加载目标系统分区中存储的第二资源;

在升级过程中,在确定需要进行资源显示时,对第二资源进行显示。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

针对第一资源中的背景图片,将背景图片中的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标;

将所有像素点按照新坐标排列组成的图片作为目标图片;

根据目标图片生成第二资源。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

针对第一资源中的非全屏资源,申请一个全屏尺寸的缓冲区;

将非全屏资源按照其在屏幕中的显示位置添加到缓冲区的对应位置处,得到缓冲区对应的第一缓冲区数据;

将第一缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标;

确定像素点中与非全屏资源对应目标像素点;

将所有目标像素点按照新坐标排列组成的图片作为目标图片;

根据目标图片生成第二资源。

作为一种可能的实现方式,投影仪利用预设的梯形校正矩阵对升级所需的第一资源进行梯形校正,得到校正后的第二资源,包括:

申请一个全屏尺寸的缓冲区;

将第一资源中的背景图片填充至缓冲区,得到缓冲区对应的第二缓冲区数据;

将第一资源中的非全屏资源按照其在屏幕中的显示位置添加到缓冲区的对应位置处,得到缓冲区对应的第三缓冲区数据;

将第三缓冲区数据中包含的每个像素点的屏幕坐标分别与梯形校正矩阵相乘,得到每个像素点的新坐标;

将所有像素点按照新坐标组成的图片作为目标图片;

根据目标图片生成第二资源。

本申请实施例提供的投影仪的梯形校正装置能够实现上述任意方法实施例实现的各个过程,为避免重复,这里不再赘述。

图7示出了本申请实施例提供的一种电子设备的硬件结构示意图。

一种电子设备可以包括处理器701以及存储有计算机程序指令的存储器702。

具体地,上述处理器701可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器702可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器702可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器702可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器702可在综合网关容灾设备的内部或外部。在特定实施例中,存储器702是非易失性固态存储器。存储器702可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器702包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。

处理器701通过读取并执行存储器702中存储的计算机程序指令,以实现上述实施例中的任意一种投影仪的梯形校正方法。

在一个示例中,一种电子设备还可包括通信接口703和总线710。其中,如图7所示,处理器701、存储器702、通信接口703通过总线710连接并完成相互间的通信。

通信接口703,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。

总线710包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线710可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

另外,结合上述实施例中的投影仪的梯形校正方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种投影仪的梯形校正方法。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。

以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

技术分类

06120116581639