1.本发明涉及图像处理领域,尤其涉及一种图像变形方法、装置、设备及可读存储介质。
背景技术:2.现代汽车上有很多图像显示屏幕,如:液晶仪表、中控屏幕及hud抬头显示(即将导航、车速、油压、胎压、蓝牙电话等车辆相关信息,投影到前挡风玻璃上)等,在这些屏幕上有很多的绘图需求,由于上述设备基本上都是使用嵌入式操作系统,在嵌入式操作系统中,使用gpu(即图形处理器,英文graphics processing unit,缩写为gpu)绘图使用跨平台的opengles(即opengl,英文open graphics library,为开放图形接口,拥有调用方便的底层图形库,也是一套跨编程语言、跨平台的编程接口规范,主要用于二维和三维图形的编程)是主要的高性能的绘图方式,目前绝大部分的绘图基于对图像的位移、旋转及缩放等方式来达到图像变形的目的,但当遇到需要使图像实现任意变化形状的效果时,上述方式无法实现,另外现有的图像变形技术由于对图像进行了局部拉伸缩放,容易产生颜色异常从而导致图像失真。
技术实现要素:3.本发明的主要目的在于提供一种图像变形方法、装置、设备及可读存储介质,旨在解决现有技术无法实现对图像进行任意形状的变形,以及对图像进行变形时导致的图像失真的技术问题。
4.第一方面,本发明提供一种图像变形方法,所述图像变形方法包括:
5.基于纹理坐标系,从初始图像中,选取预设数量的第一特征点;
6.基于顶点坐标系,设定变形形状,从所述变形形状中,选取所述预设数量的第二特征点,所述第二特征点和所述第一特征点每个点一一对应,且所述第二特征点每个点间的顺序和所述第一特征点每个点间的顺序保持一致;
7.根据变形形状,设定所述第二特征点的分布位置;
8.基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图,得到绘制好的变形图像。
9.可选的,在所述基于纹理坐标系,从初始图像中,选取预设数量的第一特征点之前,包括:
10.根据变形图像的绘制精度,设定预设数量的大小。
11.可选的,所述基于纹理坐标系,从初始图像中,选取预设数量的第一特征点包括:
12.基于纹理坐标系,根据待处理变形区域,从待变形图像中选取初始图像;
13.根据待绘图主体内容,从初始图像中,选取选取预设数量的第一特征点。
14.可选的,所述基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图包括:
15.基于所述第一特征点的纹理坐标,构建得到第一数组;
16.基于所述第二特征点的顶点坐标,构建得到第二数组;
17.基于所述第一数组和所述第二数组,通过opengles api,进行着色;
18.基于所述第一数组和所述第二数组,通过opengles api,创建纹理;
19.通过opengles api的gldrawarrays函数,进行绘图。
20.可选的,所述基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图还包括:
21.基于所述第一特征点,对所述初始图像进行三角形切割,得到第一三角形网络;
22.基于所述第二特征点,对所述变形形状进行三角形切割,得到第二三角形网络;
23.基于所述第一三角形网络的纹理坐标,构建得到第三数组;
24.基于所述第二三角形网络的纹理坐标,构建得到第四数组;
25.基于所述第三数组和所述第四数组,通过opengles api,进行着色;
26.基于所述第三数组和所述第三数组,通过opengles api,创建纹理;
27.通过opengles api的gldrawarrays函数,进行绘图。
28.第二方面,本发明还提供一种图像变形装置,所述图像变形装置包括:
29.选取模块,用于基于纹理坐标系,从初始图像中,选取预设数量的第一特征点;
30.第一设定模块,用于基于顶点坐标系,设定变形形状,从所述变形形状中,选取所述预设数量的第二特征点,所述第二特征点和所述第一特征点每个点一一对应,且所述第二特征点每个点间的顺序和所述第一特征点每个点间的顺序保持一致;
31.第二设定模块,用于根据变形形状,设定所述第二特征点的分布位置;
32.绘图模块,用于基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图,得到绘制好的变形图像。
33.可选的,所述选取模块,用于:
34.基于纹理坐标系,根据待处理变形区域,从待变形图像中选取初始图像;
35.根据待绘图主体内容,从初始图像中,选取选取预设数量的第一特征点。
36.可选的,所述绘图模块,用于:
37.基于所述第一特征点的纹理坐标,构建得到第一数组;
38.基于所述第二特征点的顶点坐标,构建得到第二数组;
39.基于所述第一数组和所述第二数组,通过opengles api,进行着色;
40.基于所述第一数组和所述第二数组,通过opengles api,创建纹理;
41.通过opengles api的gldrawarrays函数,进行绘图。
42.第三方面,本发明还提供一种图像变形设备,所述图像变形设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的图像变形程序,其中所述图像变形程序被所述处理器执行时,实现如上述所述的图像变形方法的步骤。
43.第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有图像变形程序,其中所述图像变形程序被处理器执行时,实现如上述所述的图像变形方法的步骤。
44.本发明中,基于纹理坐标系,从初始图像中,选取预设数量的第一特征点;基于顶点坐标系,设定变形形状,从所述变形形状中,选取所述预设数量的第二特征点,所述第二特征点和所述第一特征点每个点一一对应,且所述第二特征点每个点间的顺序和所述第一
特征点每个点间的顺序保持一致;根据变形形状,设定所述第二特征点的分布位置;基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图,得到绘制好的变形图像。本发明通过,首先在纹理坐标系下,从初始图像中,选取预设数量的第一特征点,然后在顶点坐标系下,设定我们想要变形的形状,根据想要变形的形状选取同样数量的第二特征点,并根据想要变形的形状,设定第二特征点在变形形状中的分布位置,其中,需要使第二特征点和第一特征点一一对应,且位置顺序也保持一致,由于第一特征点的纹理坐标代表着从初始图像的哪个位置去取图像数据,第二特征点的顶点坐标代表着将图像数据显示到屏幕上的哪个位置,因此基于第一特征点的纹理坐标和第二特征点的顶点坐标,进行绘图,可以得到绘制好的变形图像,变形形状可根据需要自行设定,从而实现了对初始图像进行任意形状的变形。
附图说明
45.图1为本发明图像变形设备一实施例的硬件结构示意图;
46.图2为本发明图像变形方法一实施例的流程示意图;
47.图3为本发明图像变形方法一实施例的纹理坐标系和顶点坐标系示意图;
48.图4为本发明图像变形方法一实施例绘制正常图像的流程示意图;
49.图5为本发明图像变形方法一实施例绘制变形图像的流程示意图;
50.图6为本发明图像变形装置一实施例的功能模块示意图。
51.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
52.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
53.第一方面,本发明实施例提供一种图像变形设备。
54.参照图1,图1为本发明图像变形设备一实施例的硬件结构示意图。本发明实施例中,图像变形设备可以包括处理器1001(例如中央处理器central processing unit,cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真wireless-fidelity,wi-fi接口);存储器1005可以是高速随机存取存储器(random access memory,ram),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
55.继续参照图1,图1中作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及图像变形程序。其中,处理器1001可以调用存储器1005中存储的图像变形程序,并执行本发明实施例提供的图像变形方法。
56.第二方面,本发明实施例提供了一种图像变形方法。
57.为了更清楚地展示本技术实施例提供的图像变形方法,首先介绍一下本技术实施例提供的图像变形方法的应用场景。
58.本技术实施例提供的图像变形方法应用于嵌入式车载设备中,通过使用跨编程语言、跨平台的opengles开放图形接口,来实现对对原始图像进行变形效果显示,例如,当我们需要显示一个导航的车道线时,因为路线的形状会根据实际的路况随机的变化,如果通过使用原始导航图像以保持比例的方式进行图像绘制,则无法达到很好的显示效果,此时,就需要考虑路线的实时变化形状,根据导航数据将路线绘制显示成相应的形状,且不产生图像显示失真的现象,另外,在有些情况下需要将图像实现任意形状的变形来达到一种酷炫的显示效果。
59.一实施例中,参照图2,图2为本发明图像变形方法一实施例的流程示意图,如图2所示,所述图像变形方法包括:
60.步骤s10,基于纹理坐标系,从初始图像中,选取预设数量的第一特征点。
61.本实施例中,参照图3,图3为本发明图像变形方法一实施例的纹理坐标系和顶点坐标系示意图,如图3所示,纹理坐标系中的纹理坐标代表着纹理与图像间的映射关系,在纹理坐标系下,图像中的每个点均对应一个纹理坐标,即表示从该位置去读取图像的纹理数据,纹理坐标的范围是0到1之间,纹理坐标默认左下角为(0,0),右上角为(1,1),初始图像即本实施例中将要对其进行变形的初始图像,在图像处理领域,特征点指图像的灰度值发生剧烈变化的点或者处于图像边缘上曲率较大的点(即两个边缘的交点),通常具有旋转不变性、光照不变性及视角不变性等特点。
62.步骤s20,基于顶点坐标系,设定变形形状,从所述变形形状中,选取所述预设数量的第二特征点,所述第二特征点和所述第一特征点每个点一一对应,且所述第二特征点每个点间的顺序和所述第一特征点每个点间的顺序保持一致。
63.本实施例中,继续参照图3,如图3所示,顶点坐标系中的顶点坐标代表着图像与屏幕间的映射关系,即将图像中的特征点显示到屏幕上的该位置,顶点坐标的范围是-1到1之间,一般将顶点坐标系的中心点设置与屏幕的中心点重合,变形形状可根据变形的需求进行自定义的设置,顶点坐标系中的第二特征点和纹理坐标系中的第一特征点必须为一一对应的映射关系,且每个点之间的位置顺序也要保持不变,以避免所绘制的图像出现错位失真等现象。
64.步骤s30,根据变形形状,设定所述第二特征点的分布位置。
65.本实施例中,在变形形状设定之后,根据变形形状,设定第二特征点的分布位置,由于第二特征点的顶点坐标代表着屏幕上的显示区域,因此,可根据想要的变形效果,例如想要突出变形形状的头部区域,相应的可以在头部区域分布数量较多的特征点,而在其他肢体躯干的区域分布数量较少的特征点。
66.步骤s40,基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图,得到绘制好的变形图像。
67.本实施例中,参照图4和图5,图4为本发明图像变形方法一实施例绘制正常图像的流程示意图,图5为本发明图像变形方法一实施例绘制变形图像的流程示意图,如图5所示,在第一特征点的纹理坐标和第二特征点的顶点坐标确定之后,就可以根据纹理坐标的位置从初始图像中取图像数据,再将图像数据显示到屏幕上顶点坐标所在的位置,从而实现变形图像的绘制。
68.本实施例中,由于第一特征点的纹理坐标代表着从初始图像的哪个位置去取图像
数据,第二特征点的顶点坐标代表着将图像数据显示到屏幕上的哪个位置,因此基于所述第一特征点的纹理坐标和第二特征点的顶点坐标,进行绘图,就可以得到绘制好的变形图像,变形形状可根据需要自行设定,从而实现了对初始图像进行任意形状的变形,由于opengles会自行在各个顶点之间进行插值运算,因此所绘制的变形图像并不会产生图像显示的失真异常,另外,可以通过实时的调整变形形状,实现图像动态变形的炫酷效果。
69.进一步地,一实施例中,在步骤s10之前,包括:
70.根据变形图像的绘制精度,设定预设数量的大小。
71.本实施例中,根据变形图像的绘制精度,相应的设定特征点的数量多少,例如,若变形图像的绘制精度要求较高,则相应的选择较多数量的特征点,以提升图像的绘制精度。
72.进一步地,一实施例中,步骤s10包括:
73.基于纹理坐标系,根据待处理变形区域,从待变形图像中选取初始图像;
74.根据待绘图主体内容,从初始图像中,选取选取预设数量的第一特征点。
75.本实施例中,我们可以选择对整张图像进行变形,也可以选取图像的部分区域进行变形,例如,一副关于人的全身图像,我们可以选取头部所在图像区域进行变形,根据待绘图主体内容,相应的设置第一特征点的位置,例如,一副关于人的头部图像,我们希望重点突出人的眼睛,即可以在眼睛所在的图像区域选取数量较多的特征点,在除眼睛之外的其他头部图像区域,选取数量较少的特征点。
76.进一步地,一实施例中,步骤s40包括:
77.基于所述第一特征点的纹理坐标,构建得到第一数组;
78.基于所述第二特征点的顶点坐标,构建得到第二数组;
79.基于所述第一数组和所述第二数组,通过opengles api,进行着色;
80.基于所述第一数组和所述第二数组,通过opengles api,创建纹理;
81.通过opengles api的gldrawarrays函数,进行绘图。
82.本实施例中,将第一特征点的纹理坐标和第二特征点的顶点坐标分别组建成数组的形式,数组中的每一元素为每一特征点的坐标值,通过opengles api,传输到着色器中进行着色,然后再创建纹理,最终实现绘图。
83.进一步地,一实施例中,步骤s40还包括:
84.基于所述第一特征点,对所述初始图像进行三角形切割,得到第一三角形网络;
85.基于所述第二特征点,对所述变形形状进行三角形切割,得到第二三角形网络;
86.基于所述第一三角形网络的纹理坐标,构建得到第三数组;
87.基于所述第二三角形网络的纹理坐标,构建得到第四数组;
88.基于所述第三数组和所述第四数组,通过opengles api,进行着色;
89.基于所述第三数组和所述第三数组,通过opengles api,创建纹理;
90.通过opengles api的gldrawarrays函数,进行绘图。
91.本实施例中,根据需要,可根据第一特征点,对初始图像进行三角形切割,以及根据第二特征点,对变形形状进行三角形切割,可以直观的观测到图像变形的过程以及预计的变形效果,由于opengles底层进行图像绘制所绘制的对象仅包括点、线及三角形,提前进行切割可以相应的提升图像变形的处理效率,在切割三角形的情况下,需要分别对第一特征点的纹理坐标和第二特征点的顶点坐标构建二维数组,其中,第一维中包括所切割的全
部的三角形,即数组的每一元素对应每一三角形,第二维中包括每一个三角形的各个点的坐标值,将所构建的二维的第三数组和第四数组,通过opengles api,传输到着色器中进行着色,然后再创建纹理,最终实现绘图。
92.第三方面,本发明实施例还提供一种图像变形装置。
93.参照图6,图6为本发明图像变形装置一实施例的功能模块示意图。
94.本实施例中,所述图像变形装置包括:
95.选取模块10,用于基于纹理坐标系,从初始图像中,选取预设数量的第一特征点;
96.第一设定模块20,用于基于顶点坐标系,设定变形形状,从所述变形形状中,选取所述预设数量的第二特征点,所述第二特征点和所述第一特征点每个点一一对应,且所述第二特征点每个点间的顺序和所述第一特征点每个点间的顺序保持一致;
97.第二设定模块30,用于根据变形形状,设定所述第二特征点的分布位置;
98.绘图模块40,用于基于所述第一特征点的纹理坐标和所述第二特征点的顶点坐标,进行绘图,得到绘制好的变形图像。
99.进一步地,一实施例中,所述图像变形装置,还包括第三设定模块50,用于:
100.根据变形图像的绘制精度,设定预设数量的大小。
101.进一步地,一实施例中,选取模块10,用于:
102.基于纹理坐标系,根据待处理变形区域,从待变形图像中选取初始图像;
103.根据待绘图主体内容,从初始图像中,选取选取预设数量的第一特征点。
104.进一步地,一实施例中,绘图模块40,用于:
105.基于所述第一特征点的纹理坐标,构建得到第一数组;
106.基于所述第二特征点的顶点坐标,构建得到第二数组;
107.基于所述第一数组和所述第二数组,通过opengles api,进行着色;
108.基于所述第一数组和所述第二数组,通过opengles api,创建纹理;
109.通过opengles api的gldrawarrays函数,进行绘图。
110.进一步地,一实施例中,绘图模块40,用于:
111.基于所述第一特征点,对所述初始图像进行三角形切割,得到第一三角形网络;
112.基于所述第二特征点,对所述变形形状进行三角形切割,得到第二三角形网络;
113.基于所述第一三角形网络的纹理坐标,构建得到第三数组;
114.基于所述第二三角形网络的纹理坐标,构建得到第四数组;
115.基于所述第三数组和所述第四数组,通过opengles api,进行着色;
116.基于所述第三数组和所述第三数组,通过opengles api,创建纹理;
117.通过opengles api的gldrawarrays函数,进行绘图。
118.其中,上述图像变形装置中各个模块的功能实现与上述图像变形方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
119.第四方面,本发明实施例还提供一种可读存储介质。
120.本发明可读存储介质上存储有图像变形程序,其中所述图像变形程序被处理器执行时,实现如上述的图像变形方法的步骤。
121.其中,图像变形程序被执行时所实现的方法可参照本发明图像变形方法的各个实施例,此处不再赘述。
122.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
123.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
124.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
125.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。