发明内容
鉴于上述问题,提出了本申请实施例以便提供一种方便用户自行校正变形图像的投影图像校正方法和相应的一种投影图像校正装置。
为了解决上述问题,本申请实施例公开了一种投影图像校正方法,包括:
获取原始图像和用户输入的修正参数;
采用所述修正参数对所述原始图像的各个角进行角坐标修正,以确定各个角的修正坐标;
采用所述修正坐标计算所述原始图像的剪切线;
采用所述剪切线对所述原始图像进行剪切。
优选的,所述采用所述剪切线对所述原始图像进行剪切的步骤包括:
将剪切线外侧预设像素距离以上的像素点的灰度值,替换为预设灰度值。
优选的,所述采用所述剪切线对所述原始图像进行剪切的步骤还包括:
将剪切线外侧预设像素距离内的像素点的灰度值,替换为位于所述剪切线内侧并且与所述像素点同行或列的邻近像素点的灰度值与预设灰度值进行线性插值的结果。
优选的,所述剪切线包括上剪切线、下剪切线、左剪切线、右剪切线;所述采用所述修正坐标计算所述原始图像的剪切线的步骤包括:
采用对原始图像进行角坐标修正后的图像上侧的两个角的纵坐标和原始图像的宽度值计算所述上剪切线;
采用对原始图像进行角坐标修正后的图像下侧的两个角的纵坐标和原始图像的宽度值计算所述下剪切线;
采用对原始图像进行角坐标修正后的图像左侧的两个角的横坐标和原始图像的高度值计算所述左剪切线;
采用对原始图像进行角坐标修正后的图像右侧的两个角的横坐标和原始图像的高度值计算所述右剪切线。
优选的,所述修正参数包括:各个角的水平移动距离和/或垂直移动距离。
优选的,其特征在于,
所述采用所述修正参数对原始图像的各个角进行角坐标修正的步骤包括:
将所述原始图像的各个角向所述原始图像内侧的方向移动对应的水平移动距离和/或垂直移动距离。
同时,本申请还公开了一种投影图像校正装置,包括:
获取模块,用于获取原始图像和用户输入的修正参数;
角坐标修正模块,用于采用所述修正参数对所述原始图像的各个角进行角坐标修正,以确定各个角的修正坐标;
剪切线计算模块,用于采用所述修正坐标计算所述原始图像的剪切线;
剪切模块,用于采用所述剪切线对所述原始图像进行剪切。
优选的,所述剪切模块还进一步包括:
第一剪切子模块,用于将剪切线外侧预设像素距离以上的像素点的灰度值,替换为预设灰度值。
优选的,所述剪切模块进一步包括:
第二剪切子模块,用于将剪切线外侧预设像素距离内的像素点的灰度值,替换为位于所述剪切线内侧并且与所述像素点同行或列的邻近像素点的灰度值与预设灰度值进行线性插值的结果。
优选的,所述剪切线包括上剪切线、下剪切线、左剪切线、右剪切线;所述剪切线计算模块进一步包括:
上剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像上侧的两个角的纵坐标和原始图像的宽度值计算所述上剪切线;
下剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像下侧的两个角的纵坐标和原始图像的宽度值计算所述下剪切线;
左剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像左侧的两个角的横坐标和原始图像的高度值计算所述左剪切线;
右剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像右侧的两个角的横坐标和原始图像的高度值计算所述右剪切线。
优选的,所述修正参数包括:各个角的水平移动距离和垂直移动距离;
优选的,所述角坐标修正模块包括:
角坐标移动子模块,用于将所述原始图像的各个角向所述原始图像内侧的方向移动对应的水平移动距离和垂直移动距离。
本申请实施例包括以下优点:
本申请实施例通过修正原始图像来改变投影到屏幕上的图像形状,使得不必调整激光电视机身的位置来调试投影到屏幕的图像。
本申请实施例可以通过逐步获取修正参数来实时对原始图像进行调整。
本申请通过剪切的方式对轻微拉伸的投影图像进行修正,剪切修正的数据处理量更少,修正速度更快。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例的核心构思之一在于,通过获取修正参数对原始图像各个角进行修正,通过修正的角坐标计算对原始图像的剪切线,最后采用剪切线对原始图像进行剪切。
参照图1,所示是本申请一种根据屏幕投影区域图像对原始输入图像进行校正的示意图。其中,1-1中,外框区域是原始输入图像,中间的灰色区域是经过校正的输入图像,黑色区域是校正后填充的区域。1-2中,外框区域是原始输入图像投影到屏幕上的投影区域图像,中间的灰色区域是校正后的图像投影到屏幕上的投影区域图像。
参照图2,示出了本申请的一种投影图像校正方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,获取原始图像和用户输入的修正参数;
步骤202,采用所述修正参数对所述原始图像的各个角进行角坐标修正,以确定各个角的修正坐标;
步骤203,采用所述修正坐标计算所述原始图像的剪切线;
步骤204,采用所述剪切线对所述原始图像进行剪切。
修正参数具体可以包括:原始图像各个角需要移动的水平距离和/或垂直距离。可以仅对角坐标进行水平方向的修正、或垂直方向的修正,也可以水平方向和垂直方向同时修正。
实际中,可以通过激光电视的遥控器对激光电视输入修正参数,通过遥控器可以实时选择原始图像的各个角以及各个角需要移动的距离和方向,遥控器上设置有原始图像四个角的选择按钮:用于选择原始图像的左上角、右上角、左下角、右下角。遥控器上还具有四个方向的方向调节按钮,在选择需要修正的角后,通过方向调节按钮调节角需要向上、下、左、右方向移动的长度,每按一下方向调节按钮,就将所选的角往选择的方向移动一个预设单位的移动距离。
在输入修正参数后,先对原始图像的各个角进行坐标修正。角坐标修正后,计算任两角所连成的剪切线,最后采用剪切线对原始图像进行剪切,得到目标图像的形状。
作为本申请实施例的一种优选示例,所述采用所述修正参数对原始图像的各个角进行角坐标修正的步骤包括:
将所述原始图像的各个角向所述原始图像内侧的方向移动对应的水平移动距离和/或垂直移动距离。
在本申请实施例中,是针对投影图像被轻微拉伸进行修正,对原始图像的处理时对原始图像进行剪切,对原始图像的角坐标而言,即是向使图像内部压缩的方向进行移动,移动的距离由修正参数:垂直移动距离和/或水平移动距离决定。
例如,设定原始图像的各个角分别为左上角A、右上角B、左下角C、右下角D,角坐标分别为:A(xa,ya)、B(xb,yb)、C(xc,yc)、D(xd,yd)。A、B、C、D的水平移动距离分别为cha、chb、chc、chd;垂直移动距离分别为:cva、cvb、cvc、cvd。修正后的各个角的角坐标为:A1(X1a,Y1a)X1a=xa+cha,Y1a=ya+cva;B1(X1b,Y1b)X1b=xb-chb,Y1b=yb+cvb;C1(X1c,Y1c)X1c=xc+chc,Y1c=yc-cvc;D1(X1d,Y1d)X1d=xd-chd,Y1d=yd-cvd;因为对于角坐标都是向内移动,从数据上看就是左边的要增大,右边的要减小,上面的要增大,下面的要减小。
作为本申请实施例的一种优选示例,所述剪切线包括上剪切线、下剪切线、左剪切线、右剪切线;所述步骤203可以包括:
子步骤S11,采用对原始图像进行角坐标修正后的图像上侧的两个角的纵坐标和原始图像的宽度值计算所述上剪切线;
子步骤S12,采用对原始图像进行角坐标修正后的图像下侧的两个角的纵坐标和原始图像的宽度值计算所述下剪切线;
子步骤S13,采用对原始图像进行角坐标修正后的图像左侧的两个角的横坐标和原始图像的高度值计算所述左剪切线;
子步骤S14,采用对原始图像进行角坐标修正后的图像右侧的两个角的横坐标和原始图像的高度值计算所述右剪切线。
具体的可以采用如下公式计算
上剪切线:
下剪切线:
左剪切线:
右剪切线:
上剪切线上任意一点的坐标为(j,Up(j));下剪切线上任意一点的坐标为(j,Dn(j));左剪切线上任意一点的坐标为(i,Lt(i));右剪切线上任意一点的坐标为(i,Rt(i));
其中,j为列标,即横坐标。对于上剪切线,j的取值范围在X1a-X1b之间;对于下剪切线,j的取值范围在X1c-X1d之间。i为行标,即纵坐标。对于左剪切线边线,i的取值范围在Y1a-Y1c之间;对于右剪切线,i的取值范围在Y1b-Y1d之间;W为原始图像的宽度,H为原始图像的高度。
作为本申请实施例的一种优选实施例,所述步骤204可以包括:
子步骤S21,将剪切线外侧预设像素距离以上的像素点的灰度值,替换为预设灰度值。
优选的,可以将剪切线外侧一个像素距离以上的像素点的灰度值,替换为0灰度值。剪切线是通过两个角修正后的角坐标计算得到的。对于剪切线,与剪切线对应的两个角所在的一侧,为剪切线的外侧;与剪切线对应的两个角的一侧的另一侧即为为剪切线的内侧。
参照图3所示,是本申请中图像剪切的示意图。在图3中,对于剪切线以外距离一个像素距离以上的像素点,即Line 0之外的像素用黑色点表示,即将原来像素点的灰度值替换为0灰度值。采用黑色点表示的好处是,在投影的图像中,黑色点的这部分将会变成透明。
作为本申请实施例的一种优选示例,所述步骤204还可以包括:
子步骤S22,将剪切线外侧预设像素距离内的像素点的灰度值,替换为位于所述剪切线内侧并且与所述像素点同行或列的邻近像素点的灰度值与预设灰度值进行线性插值的结果。
优选的,可以将剪切线外侧一个像素距离内的像素点的灰度值,替换为位于所述剪切线内侧并且与所述像素点同行或列的邻近像素点的灰度值与0灰度值进行线性插值的结果。
在图3中,Line 1是图像中的水平方向的剪切线,Line 0表示从剪切线向外一个像素距离,Line 2表示从剪切线向内一个像素距离。对于剪切线以内以及在剪切线上的像素点用白色点表示,实际中,对于剪切线以内以及在剪切线上的像素点保留其原来的灰度值。
Line 0和Line 1之间的像素点即剪切线外侧一个像素距离内的像素点,对于Line0和Line 1之间的像素点,在像素点所在的列中,如果存在位于Line 1和Line 2之间区域的邻近像素点,即将该像素点的灰度值替换为0灰度值与该邻近像素点的灰度值进行线性插值的结果。
对于与水平轴线的夹角小于45度的剪切线外侧一个像素距离内的像素点,如果像素点所在的列中,存在位于剪切线内侧一个像素距离内的邻近像素点,则将该像素点的灰度值替换为0灰度值与该邻近像素点的灰度值进行线性插值的结果;对于与垂直轴线的夹角小于45度的剪切线外侧一个像素距离内的像素点,如果像素点所在的行中,存在位于剪切线内侧一个像素距离内的邻近像素点,则将该像素点的灰度值替换为0灰度值与该邻近像素点的灰度值进行线性插值的结果。
由于Line0外侧的点被替换为0灰度值,而将该像素点的灰度值替换为0灰度值与该邻近像素点的灰度值进行线性插值的结果,可以使得Line1与Line0之间的点的灰度值从白色点向黑色点逐渐过渡,从而使得图像边缘更加平滑、美观。
线性插值具体可以为:根据该像素点到Line 1之间的垂直方向的距离做线性插值计算灰度值,然后与该像素点当前的灰度值比较取最小值。如b点到Line 1在垂直方向的距离值是r,同一列中在Line 1和Line 2之间对应的邻近像素点是a,则线性插值的计算公式有:val(b)=min(val(b),val(a)*r)。其中,val()为点的灰度值表示方式。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图4,示出了本申请的一种投影图像校正装置实施例的结构框图,具体可以包括如下模块:
获取模块401,用于获取原始图像和用户输入的修正参数;
角坐标修正模块402,用于采用所述修正参数对所述原始图像的各个角进行角坐标修正,以确定各个角的修正坐标;
剪切线计算模块403,用于采用所述修正坐标计算所述原始图像的剪切线;
剪切模块404,用于采用所述剪切线对所述原始图像进行剪切。
作为本申请实施例的一种优选示例,所述剪切模块404可以进一步包括:
第一剪切子模块,用于将剪切线外侧预设像素距离以上的像素点的灰度值,替换为预设灰度值。
作为本申请实施例的一种优选示例,所述剪切模块404可以还进一步包括:
第二剪切子模块,用于将剪切线外侧预设像素距离内的像素点的灰度值,替换为位于所述剪切线内侧并且与所述像素点同行或列的邻近像素点的灰度值与预设灰度值进行线性插值的结果。
作为本申请实施例的一种优选示例,所述剪切线包括上剪切线、下剪切线、左剪切线、右剪切线;所述剪切线计算模块403可以进一步包括:
上剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像上侧的两个角的纵坐标和原始图像的宽度值计算所述上剪切线;
下剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像下侧的两个角的纵坐标和原始图像的宽度值计算所述下剪切线;
左剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像左侧的两个角的横坐标和原始图像的高度值计算所述左剪切线;
右剪切线计算子模块,用于采用对原始图像进行角坐标修正后的图像右侧的两个角的横坐标和原始图像的高度值计算所述右剪切线。
作为本申请实施例的一种优选示例,所述修正参数包括:各个角的水平移动距离和垂直移动距离。
在本申请实施例中,所述角坐标修正模块402可以包括:
角坐标移动子模块,用于将所述原始图像的各个角向所述原始图像内侧的方向移动对应的水平移动距离和垂直移动距离。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种投影图像校正方法和一种投影图像校正装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。