发明内容
鉴于上述问题,提出了本发明以便提供一种至少部分地解决上述问题的一种在多个显示设备上实现图像任意角度旋转的方法。
为了实现上述目的,根据本发明的一个方面,提供了以下技术方案:
一种在多个显示设备上实现图像任意角度旋转的方法,所述方法至少包括:
根据所述多个显示设备的安装方位,对输入图像进行逻辑划分;
确定所述多个显示设备的安装角度和图像输出参数;
根据所述多个显示设备的安装角度和所述图像输出参数,对各所述输入图像的逻辑划分结果进行旋转,并在所述多个显示设备上显示。
优选地,所述显示设备包括以下一种或几种设备:
LED无缝拼接屏、LED电视、LCD电视、LCD拼接屏、背投和CRT显示器。
优选地,所述方法还包括:
分别对所述多个显示设备进行独立地设置与控制。
优选地,所述确定图像输出参数具体包括:
根据所述多个显示设备预先设置的摆放方式或安装位置,来确定所述图像输出参数。
优选地,所述图像输出参数包括图像长度、图像宽度、图像分辨率及图像上任一像素点坐标。
与现有技术相比,上述技术方案至少具有以下有益效果:
本发明实施例根据输入图像和输出图像的属性参数及显示设备的旋转角度对输入图像进行裁剪,得到大于输出图像的第一图像;其中,输出图像的属性参数由各显示设备的位置确定;然后,将第一图像缩放至输出图像,得到第二图像;再根据输出图像的属性参数和显示设备的旋转角度,对第二图像进行旋转,以实现输入图像任意角度的旋转。通过本发明实施例,可以在多个显示设备同时工作时达到在多个显示设备上实现输入图像任意角度的旋转的目的。
当然,实施本发明的任一产品不一定需要同时实现以上所述的所有优点。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其它优点可通过在所写的说明书、权利要求书以及附图中所特别指出的方法来实现和获得。
实施例2
如图2所示,本发明实施例提供一种在多个显示设备上实现图像任意角度旋转的方法。该方法可以包括:
S100:获取输入图像和输出图像的属性参数及显示设备的旋转角度;其中,输出图像的属性参数由各显示设备的位置确定。
其中,输入图像和输出图像的属性参数及显示设备的旋转角度这些参数可以由用户在上位机上进行设置而获取到。
显示设备可以包括但不限于LED无缝拼接屏、LED电视、LCD电视、LCD拼接屏、CRT显示器。
S110:根据输入图像和输出图像的属性参数及显示设备的旋转角度,对输入图像进行裁剪,得到第一图像;其中,第一图像的区域大于输出图像。
其中,输入图像的属性参数可以包括输入图像上任一像素点的坐标;输出图像的属性参数可以包括输出图像的长度和宽度。
这里,显示设备的旋转角度也就是输出图像的旋转角度。
具体地,本步骤可以包括:
S112:根据输入图像上任一像素点的坐标、输出图像的长度和宽度及显示设备的旋转角度,确定输出图像在输入图像上的外接矩形。
S114:根据外接矩形,对输入图像进行裁剪,得到第一图像。
在实际应用中,控制模块根据输入图像上任一像素点的坐标、输出图像的长度和宽度及显示设备的旋转角度,在输入图像上确定出输出图像的外接矩形,然后控制模块控制图像处理模块对输入图像进行裁剪,以获取该外接矩形图像,也即第一图像。
下面以输入图像上任一像素点为输入图像左上角像素点为例来说明获得外接矩形图像的过程。
如图3所示,假设输入图像左上角的坐标为(0,0),横向宽度为H,纵向高度为V;设定显示设备旋转45°(即输出图像旋转45°),显示设备的宽度为m,显示设备的高度为n。
在输入图像上确定输出图像旋转45°后的方位,并根据该方位,确定输出图像的外接矩形。其中,在以输入图像的坐标为基准的情况下该外接矩形左上角的坐标为(x0,y0),截取宽度为a,截取高度为b。
图像处理模块根据外接矩形左上角的坐标、截取宽度及截取高度,对输入图像进行截取,得到第一图像(即外接矩形图像)。
本领域技术人员应能理解,上述假设仅为举例,不应视为对本发明保护范围的不当限定。
S120:将第一图像缩放至输出图像,得到第二图像。
上述输出图像的属性参数还可以包括输出图像的分辨率。
具体地,本步骤可以包括:
S122:根据输出图像的长度和宽度及分辨率,确定第一图像与输出图像之间的缩放系数。
S124:利用缩放系数,将第一图像缩放至输出图像,得到第二图像。
在实际实施过程中,控制模块根据输出图像的长度和宽度及分辨率,计算外接矩形图像与输出图像之间的缩放系数,并控制图像处理模块进行相应的缩放操作,以得到第二图像,也即缩放后的图像。
作为示例,已知输出图像的横向宽度m和纵向高度n(可以由用户设置);假设输出图像的分辨率为1920*1080,则控制模块计算出横向缩放系数为1920/m,纵向缩放系数为1080/n。
需要说明的是,上述得到第二图像的方式仅为举例,任意现有或今后可能出现的获得第二图像的方式也均在本发明的保护范围之内,并在此以引用的方式结合于此。
S130:根据输出图像的属性参数和显示设备的旋转角度,对第二图像进行旋转,以实现输入图像任意角度的旋转。
本步骤根据用户预先设置的旋转角度,对进行了缩放之后的图像进行旋转,以实现输入图像任意角度的旋转。
上述输出图像的属性参数还可以包括输出图像上任一像素点的坐标。该坐标可以由用户通过上位机进行设置。
具体地,本步骤具体可以包括:
S131:根据输出图像上任一像素点的坐标及显示设备的旋转角度,确定输出图像上目标像素点坐标值的第一部分;其中,目标像素点为已知任一像素点之外的像素点。
S132:根据输入图像上任一像素点的坐标,确定第二图像上任一像素点的坐标。
S133:根据第二图像上任一像素点的坐标,利用插值算法,确定输出图像上目标像素点坐标值的第二部分。
S134:根据第一部分和第二部分,确定输出图像上目标像素点的坐标。
S135:根据输出图像上所有目标像素点的坐标,对第二图像进行旋转。
还以输出图像上任一像素点为输出图像左上角的像素点为例,本步骤根据用户预先设定的输出图像左上角的坐标,确定输出图像其他目标像素点的坐标。
作为示例,如图4所示,假设a1为输出图像左上角的像素点,其坐标为(x0,y0),设旋转角度A为70°;像素点之间的距离单位为1;则与a1点相邻的目标像素点a2点的坐标为:(x0-n,y0+m),其中,p=sin(A),q=cos(A)。
目标像素点a2点的坐标包括第一部分和第二部分。其中,第一部分为整数部分;第二部分为小数部分。
由于输出图像中的每一个目标像素点必然落在旋转前图像(即第二图像)中四个像素点之间,所以,可以确定出目标点与该四个像素点之间的数学关系。
下面举例来说明计算第二部分的过程。其中,计算方法包括但不限于邻近取样、二次线性插值、双三次插值。本实施例以二次线性插值为例进行说明。
如图5所示,假设A、A1、A2、B、B1、B2、C、C1、C2点为旋转前图像中的像素点,且像素点之间的距离为1(例如:AA1=1,AB=1);a、b、c、d为旋转后的输出图像中的目标像素点;
根据以下公式计算目标像素点a第二部分的数值a’:
Tmp0=A*(1-u)+A1*u
Tmp1=B*(1-u)+B1*u
a’=tmp0*(1-v)+tmp1*v
其中,u表示a到A的距离,v表示a到B的距离;u、v为纯小数部分;Tmp0表示a点在A和A1之间的横向插值;Tmp1表示a点在A和B之间的横向插值。
通过上述计算步骤,目标像素点a坐标的小数部分通过Tmp0和Tmp1在纵向的插值结果确定。
通过上述方法,可以计算出旋转后的输出图像中所有的目标像素点坐标的小数部分。
通过上述实施例可以确定出输出图像(即旋转后的图像)中每一个目标点的坐标。由此,实现在多个显示设备上实现图像任意角度的旋转。
另外,本发明实施例还可以包括:设置多个显示设备之间的同步信号,并根据同步信号,调整各显示设备上输出图像的行场参数。
其中,同步信号由输出同步模块产生。然后,输出同步模块将同步信号发送至输出通道。输出通道根据同步信号,调整各个输出图像的行场参数,并将调整后的各个输出图像分别发送至各个显示设备,从而实现在多个显示设备上实现图像任意角度的旋转。
例如,如图6和7所示,用四个显示器来共同显示一个信号源。通过输出同步模块可以确保四路输出为输入图像的同一帧图像;如果没有输出同步模块,则四路输出显示的可能不是输入图像同一帧的图像,会产生图像的撕裂感。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
以上对本发明实施例所提供的技术方案进行了详细的介绍。虽然本文应用了具体的个例对本发明的原理和实施方式进行了阐述,但是,上述实施例的说明仅适用于帮助理解本发明实施例的原理;同时,对于本领域技术人员来说,依据本发明实施例,在具体实施方式以及应用范围之内均会做出改变。
需要说明的是,本文中涉及到的流程图或框图不仅仅局限于本文所示的形式,其还可以进行划分和/或组合。
需要说明的是:附图中的标记和文字只是为了更清楚地说明本发明,不视为对本发明保护范围的不当限定。
术语“包括”、“包含”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
本发明的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明不限于任何特定的硬件和软件或者其结合。
本发明提供的方法可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件或程序模块(其包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件或数据结构等等),例如根据本发明的实施例可以是一种计算机程序产品,运行该计算机程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现所述方法。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可以从计算机主体上拆卸下来的可移动介质(例如:采用热插拔技术的存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如:RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。
本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的保护范围。